php - 使用PHP连接远程MySQL错误

标签 php mysql

我正在尝试连接到远程服务器,因此我运行此测试脚本:

$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/

相关文章:

java - Mysql int 到 Java Long 映射到 null

php - 页面未使用 AJAX 加载

php - 使用 PHP、AJAX 和 MySQL 检查更新的最快方法

c# - MySql Connector - 非阻塞套接字操作@nonQuery

php - 以某种形式随机挑战?

php - 如何在magento的自定义模块中创建sql安装程序以通过脚本创建表

php - if 语句无法在变量中检测到 0

带有 jquery slidedown 的 PHP ajax

javascript - JavaScript 中的登录脚本失败

php - 基于另一个下拉菜单的下拉菜单项