【发布时间】:2015-06-06 09:00:13
【问题描述】:
我正在尝试使用 PHP 连接来连接 phpmyadmin 上的 MySQL 数据库。只是想看看连接是否成功,连接并没有什么花哨的。我正在使用 MAMP 来托管数据库,我尝试使用的连接是这样的:
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";
try {
$conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
我一直在使用邮递员测试连接是否正常,但我不断收到此错误消息:
连接失败:SQLSTATE[HY000] [2002] 连接被拒绝
在我收到以下错误消息之前:
连接失败:SQLSTATE[HY000] [2002] 没有这样的文件或目录
这是因为我将服务器名称设置为 localhost,通过将其更改为 IP 地址,它给了我连接被拒绝,我不知道出了什么问题。
我们将不胜感激。
【问题讨论】:
-
听起来你的 MySQL 服务没有监听 127.0.0.1 TCP。如果它实际上正在运行,则可能是它位于本地套接字上,而不是 TCP。
mysql:localhost;dbname=AppDatabase有影响吗? -
... 还是
localhost出现“没有这样的文件或目录”?如果是这种情况,要么是 php.ini 中的套接字路径不正确,要么是 MySQL 根本没有运行。 -
如果其他人出于同样的原因遇到此问题,对我来说,问题是我在代码中犯了一个错误,导致我使用错误的主机名登录到数据库.
-
您可能会因为 MySQL 的磁盘空间不足而收到相同的错误。如果您在 Ubuntu 上,请检查磁盘空间
$ df -h