【问题标题】:Lazy symbol binding failed when creating ruby db创建 ruby​​ db 时延迟符号绑定失败
【发布时间】:2013-02-23 22:41:50
【问题描述】:

我正在尝试在 Rails 上安装 ruby​​,到目前为止,所有内容都已安装,但是当我尝试使用 rake db:create 创建数据库时,我收到了一个奇怪的错误:

dyld:惰性符号绑定失败:找不到符号:_mysql_get_client_info 引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle 预期在:平面命名空间

dyld:找不到符号:_mysql_get_client_info 引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle 预期在:平面命名空间

跟踪/BPT 陷阱:5

我正在开发 osx 山狮最新更新。有人有适合我的解决方案吗?

【问题讨论】:

    标签: ruby-on-rails ruby database


    【解决方案1】:

    你可以试试这个。

    sudo gem install mysql2 — –with-mysql-config=/usr/local/mysql/bin/mysql_config
    

    请务必使用您的位置修改 mysql 配置路径。

    您可以使用以下命令确定这一点。

    locate mysql_config
    

    利用上面命令给出的路径。

    【讨论】:

    • mysql_config 路径应该去哪里?我必须使用我已经从 sql 网站 (mysql-5.5.29-osx10.6-x86) 下载的 sql 链接还是使用 gem 安装的链接?
    • 当我运行上述命令时,我得到 ERROR: could not find gem — local or in a repository 错误: could not find gem –with-mysql-config=/usr/local/mysql/bin/ mysql_config 本地或存储库中
    • 当我运行 locate mysql_config 时,我收到下一条消息:警告:定位数据库 (/var/db/locate.database) 不存在。 ehm 但是我已经从我通常使用的 mysql 网站安装了一个 mysql 服务器?
    • 你看过这篇文章吗? stackoverflow.com/questions/5682386/mysql-gem-for-ruby-on-rails 请注意问题中列出您的确切错误的 cmets。
    • 在上面的代码中需要注意的一点,它是sudo gem install myslq2 "dash dash space dash dash" 等等。我花了很长时间才弄清楚 mysql。这就是为什么您收到“错误:无法在本地找到 gem”
    【解决方案2】:

    消息告诉您链接错误的版本 32 和 64

    在 OSX 上,您可以看到安装的 mysql 上的所有版本

    cd /usr/local/
    

    并在 /usr/local/mysql-xxxx/bin/mysql_config 中找到正确的配置

    在我的情况下是:

    gem uninstall mysql2
    sudo gem install mysql2 -- 
    --with-mysql-config=/usr/local/mysql-5.5.27-osx10.6-x86_64/bin/mysql_config
    

    这里讨论过:https://www.ruby-forum.com/topic/1440086

    【讨论】:

      【解决方案3】:

      关于这个有很多问题,至少有同样多的答案在某些时候有效,但在其他时候无效。在尝试了大多数之后,我注意到 gem 是 64 位的,而 mysql 安装是 32 位的。

      修复它:

      • 安装64位mysql
      • 在 /usr/local 中设置符号链接以指向 64 位版本
      • 在您的配置文件中设置 PATH 和 DYLD_LIBRARY_PATH 以包含正确的版本
      • 卸载 mysql2 gem
      • 安装 mysql2 gem
      • ruby 现在可以很好地与 mysql 配合使用!

      我没有包含确切的代码,因为这往往会因您的环境而异。

      【讨论】:

        【解决方案4】:

        我在这个问题上遇到了困难。我尝试了上面所有的答案,所以我无法确定是什么组合导致了修复。我已经安装了 mysql 并从 mysql 的网站重新安装。按照下面的方法,它终于开始工作了。

        这是在 Mavericks 上使用 rails 4 并安装了 brew

        brew install mysql
        

        我不推荐这个过程 .. 只是注意到它在经过数小时的挫折后对我有用。

        ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
        launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
        
        sudo gem uninstall mysql
        gem uninstall mysql2
        gem install mysql
        gem install mysql2
        

        【讨论】:

        • 这对我来说也适用于运行 ruby​​ 2.3,通过自制软件安装的 mysql56
        【解决方案5】:

        您需要安装 64 位 MySql 服务器。不要忘记重新安装 mysql gem。

        【讨论】:

          【解决方案6】:

          由于某种原因,我安装了两个版本的 mysql(32 位和 64 位)。

          确保您的 $MYSQL 环境变量(很可能在 ~/.bash_profile 或 ~/.profile 中找到)指向 64 位版本。

          如其他答案所述,在安装 gem 时,请确保指向正确的 mysql 安装。

          【讨论】:

            【解决方案7】:

            我有同样的问题。 mysql2版本是0.4.9,降级到0.4.5问题解决了

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-05-12
              • 2011-03-22
              • 2013-08-06
              • 2013-08-09
              • 2014-12-17
              • 1970-01-01
              • 2016-03-18
              • 1970-01-01
              相关资源
              最近更新 更多