Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP错误连接到远程MySQL_Php_Mysql - Fatal编程技术网

使用PHP错误连接到远程MySQL

使用PHP错误连接到远程MySQL,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("

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

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

它没有尝试连接到远程服务器,而是尝试连接到我的本地服务器,有人知道原因吗?

使用主机的IP/子网而不是域名。也 仔细检查以确保root用户可以从本地主机以外的主机/IP访问

mysql> use mysql;
mysql> SELECT host FROM user WHERE user = 'dbusername';
您需要向连接的IP授予权限

mysql> GRANT SELECT, INSERT ON dbname.* TO 'dbusername'@'10.0.0.1';
替换

数据库名

使用您想要访问的数据库(或输入通配符),然后用您的客户端连接的地址或子网替换IP。

错误消息的含义
mysql> GRANT SELECT, INSERT ON dbname.* TO 'dbusername'@'10.0.0.1';
该错误告诉您试图用于建立连接的帐户没有访问权限。(这可能是由于使用了不正确的值,或者实际上没有访问权限。)修复正在使用的值后,应直接在数据库中检查帐户,并验证它是否确实允许远程连接。(有时默认情况下,它们被设置为允许本地连接。请参见下文。)

此外,数据库帐户与系统/OS帐户不同;它们独立于操作系统用户帐户,所以也要检查这些帐户

例如,连接字符串应该更像这样:
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)

要使用帐户访问设置,您应该查看。

您是否为这些域使用共享主机帐户?这看起来像是远程权限问题(因为您的远程帐户不接受与数据库的远程连接)。可能重复的请记住,如果有不清楚的地方,请返回并提问,或者如果对您有用,请接受答复。这对你、那些试图回答你问题的人以及整个社区都有好处。