Mysqli连接到完全不同的IP


Mysqli connects to totaly different IP

我尝试通过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 隧道,因此您不会遇到问题。