我尝试过以下脚本,但遗憾的是无效。我正在使用免费的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'")
答案 0 :(得分:9)
GRANT ALL
ON *.*
TO user@192.168.39.17 -- client ip address
IDENTIFIED BY 'pwd';
修改强>
这是您在数据库上运行的SQL,以确保user
可以访问所有内容。 pwd
是user
的密码。
基本上,此答案假定连接问题是凭据问题。
答案 1 :(得分:5)
这就是我要做的事情
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