PDO无法连接到数据库

时间:2016-04-12 08:27:07

标签: php mysql pdo

我们学校让我们起诉我试图通过学校网络访问的小型数据库。 使用

连接
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上运行,我只有非常有限的权限。)

2 个答案:

答案 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。