通过Python连接远程MySQL数据库

时间:2012-10-19 11:03:01

标签: python mysql

我尝试过以下脚本,但遗憾的是无效。我正在使用免费的MySQL数据库提供程序。有什么想法吗?

import MySQLdb

myDB = MySQLdb.connect(host="208.11.220.249",port=3306,user="XXXXX",passwd="XXXXX",db="XXXXX")
cHandler = myDB.cursor()
cHandler.execute("SHOW DATABASES")
results = cHandler.fetchall()
for items in results:
    print items[0]

目前,我收到以下错误:

super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1044, "Access denied for user 'XXXXX'@'%' to database 'XXXXX'")

4 个答案:

答案 0 :(得分:9)

 GRANT ALL
 ON  *.*
 TO user@192.168.39.17  -- client ip address
 IDENTIFIED BY 'pwd';

修改

这是您在数据库上运行的SQL,以确保user可以访问所有内容。 pwduser的密码。

基本上,此答案假定连接问题是凭据问题。

答案 1 :(得分:5)

这就是我要做的事情

  1. 查看该端口是否实际在该计算机上打开。
  2. 在您要连接的计算机上,打开console / cmd / terminal,看看是否可以使用mysql -u XXXX -h 208.11.220.249 -p进行连接。如果您的mysql客户端无法连接,则无法使用python连接

答案 2 :(得分:1)

您无权使用此用户连接到数据库。 请按照以下步骤操作:

1.try连接到mysql DB:    mysql -h208.11.220.249 -uXXXXX -pXXXXX XXXXX

2.如果您没有连接数据库的权限,请尝试创建具有远程权限的用户

全部授予     ON DB。* - 数据库名称  用户@ip - 客户端IP地址  由'pwd'识别;

3.在最后一次检查my.cnf。 “bind-address”必须为0.0.0.0如果要连接所有远程地址。

答案 3 :(得分:0)

在mysql中打开数据库,然后输入以下内容:

mysql> GRANT ALL ON *.* TO root@'x' IDENTIFIED BY 'Your-password'

其中x是要访问您的数据库的用户的IP地址。

使用此链接以获取更多信息: How to Allow MySQL Client to Connect to Remote MySQL server