创建ruby db时,延迟符号绑定失败

时间:2013-03-08 11:38:46

标签: ruby-on-rails ruby database

我正在尝试在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     期望:平面命名空间

     

Trace / BPT trap:5

我正在研究osx mountain lion最新更新。有没有人能为我找到合适的解决方案?

7 个答案:

答案 0 :(得分:4)

你可以试试这个。

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

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

您可以使用以下命令确定此信息。

locate mysql_config

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

答案 1 :(得分:2)

关于这一点有很多问题,至少有很多答案在某些时候起作用而在其他时候起作用。在尝试了大部分内容之后,我注意到gem是64位,mysql安装是32位。

修复它:

  • 安装64位mysql
  • 在/ usr / local中设置符号链接以指向64位版本
  • 在个人资料中设置PATH和DYLD_LIBRARY_PATH以包含正确的版本
  • 卸载mysql2 gem
  • 安装mysql2 gem
  • ruby​​现在可以很好地使用mysql!

我没有包含确切的代码,因为这会随着您的环境而变化。

答案 2 :(得分: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 :(得分:1)

我正在努力解决这个问题。我尝试了上面的所有答案,因此我无法确定哪种组合能够解决问题。我已经安装了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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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

答案 6 :(得分:0)

我有同样的问题。 mysql2版本为0.4.9,将其降级为0.4.5,问题解决了