我正在尝试连接到远程服务器,因此我运行此测试脚本:
$servername = "remotedomain.com";
$username = "dbusername";
$password = "dbpassword";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
但是,我得到了这样的回复:
Connection failed: Access denied for user 'dbusername'@'www.mydomain.com' (using password: YES)
它不是在尝试连接到远程服务器,而是在尝试连接到我的本地服务器,有人知道为什么吗?
最佳答案
错误消息的含义
该错误告诉您尝试用于建立连接的帐户没有访问权限。 (这可能是由于使用了不正确的值,或者实际上没有访问权限。)修复您正在使用的值后,您应该直接在数据库中检查帐户并验证它是否确实允许远程连接。 (有时它们默认设置为允许本地连接。见下文。)
此外,数据库帐户与系统/操作系统帐户不同。它们独立于操作系统用户帐户,因此也请检查这些帐户。
例如,连接字符串应如下所示:username@serverhost.domain
,不含 www
部分。
数据库帐户访问确认
这是您应该在数据库端检查的内容,以验证您的帐户是否具有远程连接权限:
mysql> use mysql;
Database changed
mysql> select User, Host from user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| ray | % | <<--- allows remote conns; wildcard accepts any host
| root | 127.0.0.1 |
| root | ::1 | <<--- does NOT allow remote conns
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
请注意,那些不具有 %
通配符而是通过名称或 IP 地址引用本地主机的用户将收到访问被拒绝错误信息。例如:
➜ ~ mysql -h data-hive.local -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'main-hive' (using password: YES)
要尝试帐户访问设置,您应该查看 MySQL Documentation .
关于php - 使用PHP连接远程MySQL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861704/