OSX dyld:惰性符号绑定失败:找不到符号:_mysql_get_client_info
OSX dyld: lazy symbol binding failed: Symbol not found: _mysql_get_client_info
我安装了 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
没用。
非常感谢您的帮助!
如果您正在使用 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
通过重新安装我的 macbook 解决了这个问题。我认为问题是我先安装了 mysql5.7,然后尝试使用 mysql56。重新安装后,我立即安装了 mysql56,一切正常。
我安装了 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
没用。
非常感谢您的帮助!
如果您正在使用 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
通过重新安装我的 macbook 解决了这个问题。我认为问题是我先安装了 mysql5.7,然后尝试使用 mysql56。重新安装后,我立即安装了 mysql56,一切正常。