繁体   English   中英

从node.js应用程序连接到mysql,错误:“ dyld:惰性符号绑定失败:找不到符号:_mysql_init”

[英]Connect to mysql from node.js app, error: “dyld: lazy symbol binding failed: Symbol not found: _mysql_init”

我使用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>

如果您想查看,则有日志文件: http : //dl.dropbox.com/u/1875424/main.log

这是由于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应用程序的问题。

我花了很多时间来解决这个问题,包括设置DVLD库路径并将库复制到/ usr / lib。

须藤cp /usr/local/mysql/lib/libmysqlclient.18.dylib / usr / lib

哎呀,任何让它起作用的东西。 最终,我尝试清除64位和32位的默认设置,它起作用了!

默认删除com.apple.versioner.perl

不知道我的perl是64位还是32位,但是我的数据库是64位,仅使用默认默认值似乎效果更好;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM