OSX dyld:惰性符号绑定失败:未找到符号:_mysql_get_client_info

时间:2016-01-14 11:21:56

标签: mysql ruby-on-rails macos bash ruby-on-rails-3

我安装了mysql(5.6.27),这是目前最新的mysql版本(5.7 ..)。

我安装了mysql2 gem版本 - 0.3.14

当我尝试运行rake db:create时,我收到错误消息:

Karliss-Air:gostyling myuser$ rake db:create
dyld: lazy symbol binding failed: Symbol not found: _mysql_get_client_info
  Referenced from: /Users/myuser/.rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/mysql2-0.3.14/mysql2/mysql2.bundle
  Expected in: flat namespace

dyld: Symbol not found: _mysql_get_client_info
  Referenced from: /Users/myuser/.rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/mysql2-0.3.14/mysql2/mysql2.bundle
  Expected in: flat namespace

但是,当我运行nm -gU时,显示dylib就在那里是奇怪的事情:

Karliss-Air:gostyling myuser$ nm -gU /usr/local/lib/libmysqlclient.18.dylib | grep _mysql_get_client_info
0000000000002ff5 T _mysql_get_client_info
Karliss-Air:gostyling myuser$ 

我试图在安装gem

时定义mysql路径
gem pristine mysql2 -v '0.3.14' -- --with-mysql-dir=/usr/local/Cellar/mysql56/5.6.27 -–with-mysql-config=/usr/local/Cellar/mysql56/5.6.27/bin/mysql_config

没有用。

我真的很乐意帮助你!

2 个答案:

答案 0 :(得分:1)

如果您使用的是rvm / without rvm(只需使用sudo),请使用以下命令解决问题。

rvmsudo ARCHFLAGS="-arch x86_64" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config --with-opt-lib=/usr/local/mysql/lib 

其他尝试,卸载mysql2 gem然后用sudo安装gem会有时解决它。

sudo gem uninstall mysql2

sudo gem install mysql2

或调查一下:Lazy symbol binding failed when creating ruby db

答案 1 :(得分:0)

通过重新安装我的macbook解决了这个问题。我认为问题在于我首先安装了mysql5.7,然后尝试使用mysql56。重新安装后,我马上安装了mysql56,一切正常。