首页 > 解决方案 > mysql连接器错误1130:主机不允许连接到这个MySQL服务器

问题描述

我今天早上刚刚升级到 Verizon Fios 互联网。我有一个 python 脚本可以访问 raspberrypi 上的 MySQL (mariadb) 服务器上的数据库(两者都在同一个网络上)。它适用于我的旧互联网/IP 地址,但现在我得到:

mysql.connector.errors.DatabaseError: 1130: Host 'my_computer_name.myfiosgateway.com' is not allowed to connect to this MySQL server

我采取的导致错误的步骤:

  1. 确认运行脚本的计算机的新 IP 地址
  2. 将 python 脚本使用的配置文件中的 IP 地址更改为新的 IP 地址
  3. 我使用运行脚本的笔记本电脑的新主机 IP 地址在 mysql 服务器中创建了一个新用户
  4. 将所有权限授予服务器上数据库的新用户
  5. 刷新权限
  6. 重启了mysql服务器

我不确定为什么错误返回的是计算机的名称,而不是 IP 地址,但我什至使用错误中返回的确切主机名执行了上述步骤,但它仍然无法正常工作。我还比较了 MySQL 服务器上从旧 IP 地址到新 IP 地址的 GRANTS,它们是相同的。

我可以毫无问题地从我的笔记本电脑上 ping 树莓派。

我是不是忘记了什么?我可能需要更改路由器上的设置吗?当脚本可以工作时,这是唯一与以前不同的地方。

dbConfig.py

dbConfig = {
    'host': 'xxx.xxx.x.xxx',
    'database': 'NHL',
    'user': 'greg',
    'password': 'xxxxxx',
}

访问数据库的脚本

import dbConfig as guiConfig
import csv
import time

# connect to server
conn = mysql.connect(**guiConfig.dbConfig)

我的 .cnf 文件中的绑定地址被注释掉了。

标签: pythonmysqlmariadb

解决方案


运行脚本的笔记本电脑是否有可能有另一个 IP 地址?

由于与数据库的 TCP/IP 连接有效,因此创建的 MariaDB 用户或其权限一定有问题。您可以设置以下参数my.cnf以跳过 DNS 解析。这提高了连接性能,它似乎让你感到困惑。然后,您应该会看到连接的源 IP 地址。

[mysqld]
skip-name-resolve

推荐阅读