MySQL 不允许在 Raspbian-Stretch 上使用 Python3 mysql.connector 进行远程连接

MySQL 不允许在 Raspbian-Stretch 上使用 Python3 mysql.connector 进行远程连接

我正在尝试允许使用 mysql.connector 从特定机器连接到玛拉雅数据库服务器,在本地网络内。

理想情况下,我希望创建一个仅限于单个 IP 和 DB 的帐户。

为了简单起见,我尝试了以下通配符方法:

CREATE USER 'foo'@'%' IDENTIFIED BY 'foobar';
GRANT ALL PRIVILEGES ON *.* TO 'foo'@'%' WITH GRANT OPTION;

SELECT user,host FROM mysql.user WHERE user='foo';

+--------+-----------+
| user   | host      |
+--------+-----------+
| foo    | %         |
+--------+-----------+

使用这个基本的 Python 测试脚本:

import mysql.connector

class DBConnect:
  def __init__(self):
    config={
      'user':'foo',
      'password':'foobar',
      'host':'192.168.x.xxx',
      'port':3306,
      'database':'foo',
      'raise_on_warnings':True
    }
    self.__db=self.__connect(config)

  def __connect(self,config):
    try:
      return mysql.connector.connect(**config)
    except mysql.connector.Error as err:
      print(str(err))
      return False

db=DBConnect()

我收到以下错误:

1130: Host '192.168.x.xxx' is not allowed to connect to this MariaDB server

我读过更改绑定地址并遵循各种设置指南,例如MySQL 文档添加新用户,但我仍然无法成功连接。

可以在文件中找到 bind-address 50-server.cnf。它设置为,127.0.0.1但如果更改为,例如,0.0.0.0服务器重启会失败:

systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE systemd[1]: Failed to start MariaDB 10.1.37 database server

skip-networking不存在于任何配置文件中

将绑定地址设置为127.0.0.1运行netstat -anp | grep 3306后返回:

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1790/mysqld
tcp 0 0 192.168.x.xxx:3306 0.0.0.0:* LISTEN 19490/mysqld

这使我相信数据库服务器确实正在监听 LAN 内的连接?

任何帮助深表感谢!

答案1

停止这两个mysqld过程将允许50-server.cnf修改文件。

然后可以成功重新启动 mysql 进程。现在将接受远程连接。

感谢 MichaelHampton

相关内容