我尝试通过mysqli_connect oop版本连接到我的服务器(ip 5.39.6 *。**)(也是经过测试的程序版本),它总是给我这个错误信息:
拒绝访问用户'****'@'62.214.6*.***'(使用密码:是)
我的问题是错误消息中的IP总是与尝试连接的IP无法匹配。我不知道为什么
目前已审查的用户和IP。如果我连接heidisql(programm like navicat)一切正常。只有我安装的本地apache 2.4(php 5.5)无法连接到它
Traceroute看起来像这样:
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);
host:target ip(5.39.6 *。**) 用户&amp; pw:显然是私人的 db:数据库名称,确实存在于服务器上 港口:3306
错误:
Access denied for user '*****'@'62.214.6*.***' (using password: YES)
答案 0 :(得分:2)
mysql权限适用于&#34;三胞胎&#34; 你有一个&#34;用户&#34;,你有一个&#34;密码&#34;而且你有一个&#34;起源&#34;。
在这种情况下,用户和密码非常明显,origin代表启动与mysql服务器连接的ip,在你的情况下62.214.6x.xxx就像你的traceroute表示代表你的互联网连接的公共ip。 / p>
您必须检查服务器上的权限以匹配此三元组,才能执行
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 |
现在您想要包含用户&#39; *****&#39; @&#39; 62.214.6 *。***&#39;这些补助金。您可以使用GRANT命令
grant all privileges on YOUR_BASE.* to '*****'@'62.214.6*.***'
identified by password 'YOUR_PASSWORD';
如果您的IP是动态的,可能每次更改ip时都必须授予权限,或者使用通配符覆盖一系列地址&#39; 62.214。%&#39;例如
heidisql有几种连接方式,可能是使用ssh隧道,所以你没有遇到问题。