2013-03-08 88 views
0

我在Mac OSX 10.8.2上安装了MySQL 5.6.10,位于/usr/local/mysql-5.6.10-osx10.7-x86_64/。然后我尝试运行一个使用DBI和DBD :: mysql连接到MySQL数据库的Perl程序。我得到了以下错误:perl DBD :: mysql不能用于MySQL 5.6?

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 

(这工作得很好,当我用了“酿造”(以perlbrew不相关)5.5安装mysql到它自己的目录是/ usr /本地/库/由于BREW没有按。还不知道5.6,我手动安装。)

我能够从mysql命令行启动mysqld并成功连接。这个错误是否表明Perl的DBD :: mysql模块有问题?它是最新的;也许它不能与MySqL 5.6交谈?

谢谢!

回答

0

此人通过安装DBD :: mysql和DBI手动,而不是通过CPAN解决您的问题:

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

+0

那么哪些检查? :)链接没有任何有关如何真正做到这一点的信息。 – 2014-11-29 13:38:13

+0

@AntonBabenko所以呢?它给出了你需要做的解决问题的答案。手动安装模块而不是使用CPAN是一项非常普遍的任务。知道这就是你需要做的,如果你不知道如何才能Google。 – srchulo 2014-11-30 17:44:26

+0

你可以写它而不是指向链接。无论如何,谢谢你的建议是否帮助了我以外的人。 – 2014-11-30 18:43:39

1

我已经在Mac上安装几个问题DBD :: mysql的,我发现了以下在 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();" 
+1

这给了我足够的线索来找到答案,这只是创建一个符号链接**/usr/local/bin/libmysqlclient.18.dylib ** - > **/usr/local/mysql/lib/libmysqlclient.18名为.dylib **。至少,事情正在发挥作用。 – Chap 2013-03-10 18:01:03

+0

只要我5分钱:有一个非常类似的问题,已经是第二次了(呃,我意识到,也许在过去我更经常地使用它,但没有意识到这是它的根源) ,但对我来说,它是libmysqlclient所在的位置,即在'/ usr/local/mysql/lib/libmysqlclient.18.dylib'中,但'/ usr/lib'中的符号链接以某种方式设法指向(MacOS X - 不要问:-S)。我重命名了这个自引用的POS并创建了一个符号链接'/usr/local/mysql/lib/libmysqlclient.18.dylib->/usr/lib/libmysqlclient.18.dylib'。 Thx让我走上正轨! – yogibimbi 2013-08-11 00:02:18

相关问题