我知道这可能会被标记为重复项,但是在这一点上,我迫切希望获得明确的帮助,因此我提前道歉。
我有两台PC,我想在它们之间建立远程MySQL连接:一台是Widows 10 PC作为客户端,另一台是Ubuntu 18.04.2 LTS PC作为MySQL Server。
对于客户端,我有一个非常简单的python代码,可以ping数据库并在测试表上显示内容:
import mysql.connector as sql
import time
print("Beginning SQP-Python Fetch Testing Script")
con = sql.connect(user = "pythonTest", password = "pyTest1!", host = "1*3.2**.3*.1**", port = "3306",
autocommit = True)
curs = con.cursor()
print("Successfully connected to MYSQL server")
curs.execute("use pyTest")
print("Successfully started using test database")
# while True:
curs.execute("select * from pytesting")
print(curs.fetchall())
我正在对主机进行安全检查,但请放心,这是一个真实的IP地址。当我运行代码时,得到以下信息:
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '1*3.2**.3*.1**' (10060 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond)
在我所看到的所有地方,它都指向未正确配置的Linux PC上的MySQL网络。
对于我的MySQL配置,我具有以下两个变量:
#skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
#
我所做的所有其他事情都保持不变,当我在Linux PC上通过MySQL工作台或上面的脚本连接任何东西时,它都可以正常工作。
对于我的网络统计信息,我已经运行过netstat,这是它返回的内容:
hsfc_uno@Uno:~$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 host-1*3.2**.3*.1:57210 ec2-52-41-177-216:https ESTABLISHED
tcp 0 0 host-1*3.2**.3*.1:36310 151.101.1.69:https ESTABLISHED
除了最后一个网段,IP地址与以前完全相同。这些似乎正在使用“默认路径”而不是“ IPv4地址”,并且我不知道这是否也是一个问题。
如果有人可以帮助我修复它或为我指明正确的方向,将不胜感激!