【发布时间】:2018-12-15 22:11:02
【问题描述】:
我有一个 RPi 上的客户端日志记录设备尝试连接到另一个 RPi (192.168.2.204) 上的 MySQL 服务器,但失败了:
pi@RPi0w-Logger:~ $ sudo python envirologremote.py 回溯(最近一次通话最后): 文件“envirologremote.py”,第 7 行,在 conn=MySQLdb.connect(host="192.168.2.204",user="jim",passwd="xxxxxxxxx",db="EnviroLogger") Connect 中的文件“/usr/lib/python2.7/dist-packages/MySQLdb/init.py”,第 81 行 返回连接(*args,**kwargs) init 中的文件“/usr/lib/python2.7/dist-packages/MySQLdb/connections.py”,第 187 行 super(Connection, self).init(*args, **kwargs2) _mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.2.204' (111)")
我可以使用相同的凭据使用 PHPMySQL 连接到服务器,因此服务器正在工作并且可用。
我可以连接到在客户端 RPi 上本地运行的服务器。
我一直在阅读有关该主题的各种文章。它们似乎专注于绑定选项,但它们到处都是配置文件的位置和名称。我确保在任何地方都能找到显示“bind=0.0.0.0”的配置文件,但即使在我重新启动后也没有任何变化。
我该如何解决这个问题?
【问题讨论】:
-
PHPMySQL 是在与 mysql 服务器相同的服务器上运行,还是在您尝试使用 python 连接的同一台服务器上运行。您需要明确授予用户从远程主机连接的权限。所以除了
jim@localhost,您还需要授予jim@remotehost的权限 -
服务器在 IP 地址 ....204 上,客户端在 IP 地址 ....203 上运行。虽然 203 有一个正在运行的 MySQL 服务器,但它不是我要连接的服务器。查看显示用户权限的更新问题....(在 ....204 上)
-
权限看起来不错。防火墙允许从远程主机连接到端口 3306?或者这可能有助于serverfault.com/questions/171655/… TL;DR:禁用
bind-address并禁用skip-networking
标签: mysql mysql-python