将 DBD::mysql 与 DBI 一起使用,尝试连接到数据库时出现以下错误。
DBI connect('database=mydb:host=localhost','someuser',...) failed: Can't connect
to local MySQL server through socket '/tmp/mysql.sock' (2) at ./myscript.pl line 97
是的,MySQL 已启动并正在运行。问题是 mysql.sock 不在 /tmp 中。
我知道 mysql.sock 的位置,并且目前已经对其进行了攻击,以便它可以正常工作,我创建了一个指向 mysql.sock 文件当前位置的软链接。我宁愿不更改 MySQL 配置,尽管这可能是最简单的事情。
有没有办法进入 DBD::mysql 并将其配置为在正确的位置查找 mysql.sock?
可以在connect方法中指定socket的位置
my $dbh = DBI->connect("DBI:mysql:database=dbname;host=localhost;mysql_socket=/path/to/mysql.sock","someuser","somepassword", {'RaiseError' => 1});
有关更多信息,请查看文档here http://search.cpan.org/~capttofu/DBD-mysql-4.013/lib/DBD/mysql.pm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)