1

XAMPPのOSX10.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

4

2 に答える 2

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 アプリケーションの問題が解決されました。

于 2012-07-11T14:48:05.070 に答える
0

DVLD ライブラリ パスの設定やライブラリの /usr/lib へのコピーなど、これにかなりの時間を費やしました。

sudo cp /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib

一体、それを機能させるために何でも。最後に、64 ビットと 32 ビットのデフォルトをクリアしてみましたが、うまくいきました。

デフォルトはcom.apple.versioner.perlを削除します

私の perl が 64 ビットか 32 ビットかはわかりませんが、私のデータベースは 64 ビットであり、デフォルトのデフォルトを使用するだけでうまくいくようです ;-)

于 2014-01-16T22:33:22.907 に答える