Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python远程访问mySQL_Python_Mysql_Database - Fatal编程技术网

使用Python远程访问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

我无法通过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 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的传入和传出连接。