在DBI中使用DBD::mysql时,我在尝试连接到数据库时遇到以下错误。
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?
发布于 2009-12-24 19:24:23
您可以在connect方法中指定套接字的位置
my $dbh = DBI->connect("DBI:mysql:database=dbname;host=localhost;mysql_socket=/path/to/mysql.sock","someuser","somepassword", {'RaiseError' => 1});有关更多信息,请查看文档here
发布于 2010-08-20 05:35:07
$dbh=DBI->connect("DBI:mysql:database=dbname;mysql_socket=/var/lib/mysql/mysql.sock;user=username;password=password");您不需要指定host,因为您正在连接到套接字文件。
https://stackoverflow.com/questions/1957916
复制相似问题