使用Python远程访问mySQL
我无法通过Python远程连接mySQL数据库 我使用以下连接到mySQL:使用Python远程访问mySQL,python,mysql,database,Python,Mysql,Database,我无法通过Python远程连接mySQL数据库 我使用以下连接到mySQL: import mysql.connector cnx = mysql.connector.connect(host='XXX.XXX.XXX.X',user='XXXX',password='XXXXXX',database='testdb') 但我得到了以下错误: 2003: Can't connect to MySQL server on '%HOST%:3306' (10060 A connection att
import mysql.connector
cnx = mysql.connector.connect(host='XXX.XXX.XXX.X',user='XXXX',password='XXXXXX',database='testdb')
但我得到了以下错误:
2003: Can't connect to MySQL server on '%HOST%:3306' (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)
服务器正在运行,当我在计算机上运行相同的代码时,我使用'localhost'
导入mysql.connector
cnx=
mysql.connector.connect(host='localhost',user='XXXX',password='XXXXXX',database='testdb')
它可以工作,我可以修改数据库中的数据。不过,我正在尝试从另一台计算机远程连接它
我已尝试使用GRANT ALL ON**将User@Host由“密码”标识代码>但没有结果。我检查了防火墙,并允许通过默认使用的端口3306进行所有传入和传出连接
我是mySQL新手,真的不知道该做什么。我甚至不知道我是否使用了正确的主机名:')我使用运行服务器的计算机的IP地址,我认为这是正确的。您不需要将所有权限授予用户。您需要告诉MYSQL允许该用户从远程位置登录
事实上,由于您现在允许通过此用户帐户进行远程访问,您应该确保它只能访问所需的数据库,并且绝对不能使用GRANT
比如说
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
将允许此用户从任何ip地址连接。为了更安全,您应该尽量更具体,如果可以的话,指定一个单独的ip地址
CREATE USER 'myuser'@'11.22.33.44' IDENTIFIED BY 'mypass';
请记住,您在此处创建新用户帐户是因为您已经有一个
myuser@localhost
无论哪种方式,您都需要确保密码是强密码,特别是使用%
任何ip选项时,您不需要向用户授予所有权限。您需要告诉MYSQL允许该用户从远程位置登录
事实上,由于您现在允许通过此用户帐户进行远程访问,您应该确保它只能访问所需的数据库,并且绝对不能使用GRANT
比如说
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
将允许此用户从任何ip地址连接。为了更安全,您应该尽量更具体,如果可以的话,指定一个单独的ip地址
CREATE USER 'myuser'@'11.22.33.44' IDENTIFIED BY 'mypass';
请记住,您在此处创建新用户帐户是因为您已经有一个
myuser@localhost
无论哪种方式,您都需要确保密码是强密码,特别是使用%
任何ip选项,这并不能解决我的问题。它只是创建了另一个无法连接到数据库的用户。我仍然收到相同的错误,然后检查防火墙是否阻止您我这样做是为了我的防火墙允许所有IP的端口3306的传入和传出连接。这并不能解决我的问题。它只是创建了另一个无法连接到数据库的用户。我仍然收到相同的错误,然后检查防火墙是否阻止您我这样做是为了我的防火墙允许所有IP端口3306的传入和传出连接。