0

MySQL 5.6.10 を Mac OSX 10.8.2 の /usr/local/mysql-5.6.10-osx10.7-x86_64/ にインストールしました。次に、DBI と DBD::mysql を使用して MySQL データベースに接続する Perl プログラムを実行しようとしました。次のエラーが発生しました。

install_driver(mysql) failed: Can't load '/Users/chap/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/darwin-2level/auto/DBD/mysql/mysql.bundle' 
for module DBD::mysql: dlopen(/Users/chap/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/darwin-2level/auto/DBD/mysql/mysql.bundle, 
1): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib

Perhaps a required shared library or dll isn't installed where expected

(これは、'brew' (perlbrew とは関係ありません) を使用して mysql 5.5 を独自のディレクトリ /usr/local/Cellar/ にインストールしたときに問題なく機能しました。brew はまだ 5.6 について認識していないため、手動でインストールしました。)

mysqld を起動し、mysql コマンド ラインから正常に接続できました。このエラーは、Perl の DBD::mysql モジュールに問題があることを示していますか? 最新です。MySqL 5.6 と通信できないのでしょうか?

ありがとう!

4

2 に答える 2

1

DBD::mysql を Mac にインストールする際にいくつか問題がありましたが、次のものが Mac OSX 10.6.8 と Perl 5.16.1 および MySQL 5.5.27 で動作し、mysql が /usr/local/ にインストールされていることがわかりました。以下のコマンドで使用されているパスとユーザー名を再確認してください。

export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH


curl -kL http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.021.tar.gz > DBD-mysql-4.021.tar.gz
gunzip -c DBD-mysql-4.021.tar.gz | tar xopf - 

cd DBD-mysql-4.021 && perl ./Makefile.pl --testuser root --libs="-L/usr/local/mysql/lib -lmysqlclient -lpthread"

install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib blib/arch/auto/DBD/mysql/mysql.bundle

make test
sudo make install

次に、接続を確認します (まだテスト データベースと匿名ユーザーが有効になっていると仮定します)。

perl -e "use DBD::mysql; my $dbh = DBI->connect('dbi:mysql:test:localhost::3306:mysql_socket=/tmp/mysql.sock'); $dbh->disconnect();"
于 2013-03-09T16:12:38.580 に答える
-1

この人は、CPAN経由ではなく手動でDBD::mysqlとDBIをインストールすることで問題を解決しました。

http://forums.mysql.com/read.php?51,281769,282127#msg-282127

于 2013-03-08T05:25:04.250 に答える