21

我尝试了以下脚本,但不幸的是不起作用。我正在使用免费的 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

4 回答 4

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

编辑

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

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

于 2012-10-19T11:20:20.547 回答
6

这就是我会做的

  1. 查看该端口是否在该机器上实际打开。
  2. 在您要连接的机器上,打开 console/cmd/terminal 并查看是否可以使用mysql -u XXXX -h 208.11.220.249 -p. 如果您的mysql客户端无法连接,那么您无法使用python连接
于 2012-10-19T11:41:01.550 回答
1

您无权使用此用户连接到数据库。按着这些次序:

1.尝试连接mysql数据库:mysql -h208.11.220.249 -uXXXXX -pXXXXX XXXXX

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

GRANT ALL ON DB.* -- 数据库名称到 user@ip -- 客户端 ip 地址由 'pwd' 识别;

3.最后检查 my.cnf 。如果要连接所有远程地址,“绑定地址”必须为 0.0.0.0。

于 2012-10-19T15:50:14.130 回答
0

在 mysql 中打开数据库并键入以下内容:

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

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

使用此链接了解更多信息: 如何允许 MySQL 客户端连接到远程 MySQL 服务器

于 2018-06-25T11:13:28.517 回答