我尝试通过mysqli_connect oop 版本(也经过测试的程序版本(连接到我的服务器 (ip 5.39.6*.**(,它总是给我以下错误消息:
拒绝访问用户"****"@'62.214.6*.***'(使用密码:是(
我的问题是错误消息中的 IP 与 IP 完全不匹配 im 尝试连接到的 IP。 我不知道为什么
用户和IP暂时受到审查。如果我与 heidisql(像 navicat 这样的程序(连接,一切正常。只有我安装的本地 apache 2.4 (php 5.5( 无法连接到它
路由跟踪如下所示:
1 1 ms 1 ms 1 ms (censored)
2 <1 ms <1 ms <1 ms 192.168.130.250
3 2 ms 1 ms 1 ms (censored)
4 202 ms 6 ms 205 ms (censored)
5 5 ms 4 ms 4 ms (censored)
6 5 ms 5 ms 5 ms (censored)
7 * * * Zeitüberschreitung der Anforderung.
8 19 ms 18 ms 18 ms rbx-g1-a9.fr.eu [94.23.122.76]
9 19 ms 19 ms 19 ms vac1-0-a9.fr.eu [178.33.100.149]
10 21 ms 32 ms 28 ms vac1-1-n7.fr.eu.firewall [178.33.100.152]
11 20 ms 21 ms 18 ms vac1-2-n7.fr.eu.tilera [37.187.36.245]
12 19 ms 18 ms 18 ms vac1-3-n7.fr.eu [91.121.215.13]
13 * * * Zeitüberschreitung der Anforderung.
14 18 ms 18 ms 18 ms 5.39.6*.**
法典:
$this->_mysqli = new 'MySQLi($this->host, $this->username, $this->password, $this->db, $this->port);
主机:目标 IP (5.39.6*.**(用户和PW:这里显然是私人的db:数据库名称,确定存在于服务器上端口:3306
错误:
Access denied for user '*****'@'62.214.6*.***' (using password: YES)
mysql 权限在"三元组"中工作你有一个"用户",你有一个"密码",你还有一个"来源"。
在这种情况下,用户和密码非常明显,来源代表启动与 mysql 服务器连接的 ip,在您的情况下 62.214.6x.xxx 像您的跟踪路由表示您的互联网连接的公共 IP。
您必须检查服务器上的权限以匹配此三元组,以执行该执行
select * from information_schema.user_privileges
where GRANTEE like '%YOUR_USER%' group by grantee;
你会看到类似的东西
+-------------------------------------+---------------+----------------+--------------+
| GRANTEE | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |
+-------------------------------------+---------------+----------------+--------------+
| 'YOUR_USER'@'127.0.0.1' | def | SELECT | YES |
| 'YOUR_USER'@'62.214.8.8' | def | SELECT | YES |
现在,您希望将用户"*****"@'62.214.6*.***'包含在这些授权中。您可以使用 GRANT 命令
grant all privileges on YOUR_BASE.* to '*****'@'62.214.6*.***'
identified by password 'YOUR_PASSWORD';
如果您的 ip 是动态的,则可能每次 ip 更改时都必须授予权限,或者使用通配符覆盖一系列地址"62.214.%"作为示例
Heidisql 有几种连接方式,并且可能使用 SSH 隧道,因此您不会遇到问题。