我使用XAMPP的OSX 10.6.8和MySQL。
当我运行此node.js应用程序(app.js)时:
var mysql = require('mysql-libmysqlclient');
var conn = mysql.createConnectionSync();
conn.connectSync('127.0.0.1', 'root', '', 'database_name');
我看到了这个输出:
Airs0urce:nodejs airs0urce$ node app.js
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
Referenced from: /Applications/XAMPP/xamppfiles/htdocs/myproject/nodejs/node_modules/mysql-libmysqlclient/build/Release/mysql_bindings.node
Expected in: dynamic lookup
dyld: Symbol not found: _mysql_init
Referenced from: /Applications/XAMPP/xamppfiles/htdocs/myproject/nodejs/node_modules/mysql-libmysqlclient/build/Release/mysql_bindings.node
Expected in: dynamic lookup
Trace/BPT trap
谷歌搜索后已经尝试了几种解决方案。 从XAMPP目录添加了mysql库,以这种方式包含路径:
export DYLD_LIBRARY_PATH=/Applications/XAMPP/xamppfiles/lib/mysql:$DYLD_LIBRARY_PATH
尝试使用MacPorts安装mysql5-devel
,但没有运气,构建失败:
Airs0urce:~ airs0urce$ sudo port install mysql5-devel
---> Computing dependencies for mysql5-devel
---> Building mysql5-devel
Error: Target org.macports.build returned: shell command failed (see log for details)
Log for mysql5-devel is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_mysql5-devel/mysql5-devel/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>
,则有日志文件
答案 0 :(得分:1)
这是因为Mac OS X Lion(10.7)上的配置问题:lib/libmysqlclient.18.dylib
(mysql 5.5及以上版本)。
第1步:
确保在~/.profile
export ARCHFLAGS=-arch x86_64
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
第2步:
我正在使用rvm,所以我使用了以下命令:
rvmsudo ARCHFLAGS="-arch x86_64" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config --with-opt-lib=/usr/local/mysql/lib
解决了Mac Lion和mysql x86_64上的rails应用程序的问题。
答案 1 :(得分:0)
我在这方面花了很多时间,包括设置DVLD库路径并将库复制到/ usr / lib。
sudo cp /usr/local/mysql/lib/libmysqlclient.18.dylib / usr / lib
哎呀,什么能让它发挥作用。最后我尝试清除64和32位的默认值,它有效!
默认删除com.apple.versioner.perl
不确定我的perl是64位还是32位,但我的db是64位,只是使用默认默认值似乎更好; - )