【问题标题】:Rails server won't start (LoadError) mysql2Rails 服务器无法启动(LoadError)mysql2
【发布时间】:2011-09-15 08:30:43
【问题描述】:

我是 Rails 的新手,我必须为学校制作一个小型 Rails 项目,但不知何故我什至无法让我的服务器运行,非常有希望的开始,希望有人能帮助我 ;-) .

当我尝试启动我的 Rails 服务器时,它给了我一个加载错误:

/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2.rb:8
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler.rb:120:in `require'
    from /Users/sanderdeclerck1/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.8 和 ruby​​ 1.8.7

有人有什么建议吗?

编辑:忘了说我在 OS X 10.6.7

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 webrick mysql2


    【解决方案1】:

    我猜您使用的是 OS X,因此您应该在实际加载 mysql Gem 之前先安装 MySQL

    两种选择:

    1. 关注 this guide herethis slightly older guide 了解如何设置所有内容(MySQL、Ruby 和 Rails)。其实从官网安装 MySQL 应该就够了,不过以我之前的经验,这涉及到一些摆弄。

    2. 您也可以通过Homebrew 安装 MySQL。这是一个guide。请注意,您必须使用

      手动启动它
      launchctl load ~/Library/LaunchAgents/com.mysql.mysqld.plist
      

    【讨论】:

    • 哦,好吧那么这是一个稍微不同的问题。你确定它正在运行?不使用 launchctl 加载它时,我看到了同样的错误@
    • 是的,我可以使用mysql工作台访问它,所以它肯定在运行
    • 嗯。也许that 有帮助。或that 一个。
    • 谢谢,我去看看
    • 这个问题与MySQL服务器没有运行无关。它无法加载共享对象(或 Mac 术语中的 dylib),可能是因为它不在已知位置(或根本没有安装)。
    【解决方案2】:

    如果您使用 Ubuntu,请尝试安装 apt-get install ruby-dev libmysql-ruby libmysqlclient-dev

    【讨论】:

      【解决方案3】:

      您是如何安装 MySQL 的?安装 MySQL gem 时可能需要指定 --with-lib--with-mysql-dir

      gem install mysql2 -- '--with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include'
      

      【讨论】:

        【解决方案4】:

        您可能只需要重新安装 mysql2 gem。

        首先你应该找到你的mysql_config。 你可以通过发出:

        sudo find /usr/local -name mysql_config
        

        然后使用

        安装 gem
        (sudo) gem install mysql2 -- --with-mysql-config=RESULT_FROM_ABOVE
        

        这应该会给你一个配置了你的 mysql 安装的 gem。 希望对您有所帮助。

        【讨论】:

          【解决方案5】:

          尝试将export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH 添加到您的~/.profile。如果您的 mysql 安装不在 /usr/local 中,您将不得不更改该路径。

          【讨论】:

            猜你喜欢
            • 2013-03-07
            • 1970-01-01
            • 2015-09-28
            • 2013-08-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-06
            相关资源
            最近更新 更多