rails + linux mint = mysql + ruby​​不起作用

时间:2015-07-25 01:38:01

标签: mysql ruby-on-rails linux ubuntu linuxmint

我正在使用Linux Mint,我刚开始学习Ruby on Rails。我正在关注Lynda.com教程,而我却陷入了设置mysql的困境。我尝试了之前人们问过的一切,但我找不到解决方案。让我解释。 我已正确安装所有东西。

matth@MatijaComp ~ $ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
matth@MatijaComp ~ $ rails -v
Rails 4.2.3
matth@MatijaComp ~ $ mysql --version
mysql  Ver 14.14 Distrib 5.5.44, for debian-linux-gnu (x86_64) using readline 6.3

当我使用“-d mysql”启动项目时,启动我的mysql服务器,运行“rake db:create”,配置database.yml文件以填充密码,然后只需执行“rails server”。希望我解释了我所有的步骤,也许我忘记了一些事情,但我想我尝试了一切。设置密码不是问题。 (没有mysql rails服务器工作正常)

[2015-07-25 02:58:46] INFO  WEBrick 1.3.1
[2015-07-25 02:58:46] INFO  ruby 2.2.2 (2015-04-13) [x86_64-linux]
[2015-07-25 02:58:46] INFO  WEBrick::HTTPServer#start: pid=11689 port=3000


Started GET "/" for 127.0.0.1 at 2015-07-25 02:58:48 +0200

Gem::LoadError (Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).):
  activerecord (4.2.3) lib/active_record/connection_adapters/connection_specification.rb:177:in `rescue in spec'
  activerecord (4.2.3) lib/active_record/connection_adapters/connection_specification.rb:174:in `spec'
  activerecord (4.2.3) lib/active_record/connection_handling.rb:50:in `establish_connection'
  activerecord (4.2.3) lib/active_record/railtie.rb:120:in `block (2 levels) in <class:Railtie>'
  activesupport (4.2.3) lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
  activesupport (4.2.3) lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
  activesupport (4.2.3) lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
  activesupport (4.2.3) lib/active_support/lazy_load_hooks.rb:44:in `each'
  activesupport (4.2.3) lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'
  activerecord (4.2.3) lib/active_record/base.rb:315:in `<module:ActiveRecord>'
  activerecord (4.2.3) lib/active_record/base.rb:26:in `<top (required)>'
  activerecord (4.2.3) lib/active_record/migration.rb:383:in `connection'
  activerecord (4.2.3) lib/active_record/migration.rb:370:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  activesupport (4.2.3) lib/active_support/callbacks.rb:84:in `run_callbacks'
  actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/reloader.rb:73:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
  web-console (2.2.1) lib/web_console/middleware.rb:39:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.3) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.3) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.3) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  railties (4.2.3) lib/rails/engine.rb:518:in `call'
  railties (4.2.3) lib/rails/application.rb:165:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  rack (1.6.4) lib/rack/content_length.rb:15:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  /usr/share/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /usr/share/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /usr/share/rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'

无论我尝试做什么,它总是会显示此错误。即使我删除了mysql的gems,在database.yml中注释数据库,它仍然不想工作。 谢谢!

1 个答案:

答案 0 :(得分:2)

首先,尝试运行bundle exec rails s并查看它是否给出了不同的结果。如果它抱怨您没有运行捆绑包,请先运行bundle installGem::LoadError通常意味着您的Gemfile存在问题,有时候 - 例如,如果您通过系统软件包管理器或安装程序安装了Ruby,则rails二进制文件将链接到你的系统宝石,而不是你项目的宝石。使用bundle exec的前缀命令可确保它们在当前Gemfile的上下文中运行。

相关问题