ruby-on-rails - Rails 服务器无法运行——这是 mysql2 的问题吗?

标签 ruby-on-rails ruby mysql2

严格遵循教程并尝试让 Rails 服务器运行并出现以下错误:

NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
    Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
    NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
    Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
    NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
    Gem::SourceIndex#each called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:162.
    NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
    Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:84.
    /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
      Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle
      Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle
        from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2.rb:9
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `require'
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'
        from /Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'
        from /Users/EricFriedman/Sites/simple_cms/config/application.rb:7
        from /Library/Ruby/Gems/1.8/gems/railties-3.0.8/lib/rails/commands.rb:28:in `require'
        from /Library/Ruby/Gems/1.8/gems/railties-3.0.8/lib/rails/commands.rb:28
        from /Library/Ruby/Gems/1.8/gems/railties-3.0.8/lib/rails/commands.rb:27:in `tap'
        from /Library/Ruby/Gems/1.8/gems/railties-3.0.8/lib/rails/commands.rb:27
        from script/rails:6:in `require'
        from script/rails:6

最佳答案

如果您使用的是 Rails 3.0.x,则需要锁定您的 mysql2 版本。在你的 Gemfile 中:

gem "mysql2", "~> 0.2.11"

然后运行bundle installbundle update mysql2

编辑:

我注意到您正在使用 0.2.11 版本的 mysql2 gem。

仔细观察,我注意到这个错误:

Library not loaded: libmysqlclient.18.dylib (LoadError)

这可能表明 mysql 开发头文件/库不可用。当您运行 bundle install 时,您安装 mysql2 gem 应该会失败。如果是这样,您需要安装这些开发库,然后重新安装 gem。

关于ruby-on-rails - Rails 服务器无法运行——这是 mysql2 的问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498071/

相关文章:

javascript - 如何利用 jQuery 来检测带有动态生成的 ID 的选择标签上的变化并更改选择的选项

ruby-on-rails - Ruby 2.7.2 使用 2.7.0 库

ruby - 安装 gem install sass windows 7 时出错

c - 如何使用 C 语言制作 ruby​​ gem?

ruby-on-rails - Ruby On Rails Mysql 访问被拒绝

ruby-on-rails - 我可以在没有 activerecord 的情况下使用 hyperstack 吗?

ruby-on-rails - 未定义的方法 `edit_..._path'

ruby-on-rails - 如果为空或不验证数值,则使属性默认为 0

ruby - 将大型数据库表导出到 csv 文件时流式传输到 ruby​​ 中的文件

mysql - 在heroku上部署node应用程序时如何连接mysql