我们学校让我们起诉我试图通过学校网络访问的小型数据库。 使用
连接mysql -D ddddd -h hhhh -u uuuu
工作正常(请注意,与此网站上的多个问题相反,hhhh 不 localhost)。但是,使用
new PDO('mysql:host=hhhh;dbname=dddd, uuuu, pppp)
没有,并引发错误:
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock''
如何找到此套接字? (注意:如果它是相关的,学校的计算机在FreeBSD上运行,我只有非常有限的权限。)
答案 0 :(得分:1)
错误:
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock''
表示PDO正试图通过本地套接字连接MySQL(linux socket is file)。
但我的猜测是你想通过hostname / ip连接。你的代码一定是错的。从示例看起来您使用的是php。尝试仔细检查一切。
以下是来自php.net的示例:
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
答案 1 :(得分:0)
使用正确的IP地址进行连接。
如果您使用localhost,那么默认情况下将在Linux上使用套接字 使用127.0.0.1作为主机而不是localhost。