首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何告诉DBD::mysql mysql.sock在哪里?

如何告诉DBD::mysql mysql.sock在哪里?
EN

Stack Overflow用户
提问于 2009-12-24 19:12:55
回答 2查看 9.7K关注 0票数 11

在DBI中使用DBD::mysql时,我在尝试连接到数据库时遇到以下错误。

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-24 19:24:23

您可以在connect方法中指定套接字的位置

代码语言:javascript
复制
my $dbh = DBI->connect("DBI:mysql:database=dbname;host=localhost;mysql_socket=/path/to/mysql.sock","someuser","somepassword", {'RaiseError' => 1});

有关更多信息,请查看文档here

票数 15
EN

Stack Overflow用户

发布于 2010-08-20 05:35:07

代码语言:javascript
复制
$dbh=DBI->connect("DBI:mysql:database=dbname;mysql_socket=/var/lib/mysql/mysql.sock;user=username;password=password");

您不需要指定host,因为您正在连接到套接字文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1957916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档