我们学校让我们起诉我试图通过学校网络访问的一个小型数据库。 连接使用
mysql -D ddddd -h hhhh -u uuuu
工作正常(请注意,与本网站上的多个问题相反,hhhh 不是本地主机)。然而,使用
new PDO('mysql:host=hhhh;dbname=dddd, uuuu, pppp)
不会,并会报错:
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock''
如何找到这个 socket ? (注意:以防万一,学校计算机在 FreeBSD 上运行,而我只有非常有限的权限)。
最佳答案
错误:
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock''
表示 PDO 正在尝试通过本地套接字(linux 套接字是文件)连接到 MySQL。
但我猜你想通过主机名/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();
}
?>
关于php - PDO无法连接数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567595/