gpt4 book ai didi

python - pymysql无法连接到mysql

转载 作者:行者123 更新时间:2023-11-28 21:48:53 24 4
gpt4 key购买 nike

我正在尝试使用 pymsql 连接到 MySQL 数据库,主机是“115.28.236.225”,并使用默认端口:3306。代码如下 (db_connect.py):

import pymysql

def connDB():
conn=pymysql.connect(host='115.28.236.225',user='root',passwd='xxx',db='yyy',charset='utf8', port=3306)
cur=conn.cursor();
return (conn,cur);

conn,cur=connDB()

我使用 python db_connect.py 运行,但是,我收到错误消息 pymysql.err.OperationalError: (1045, u"Access denied for user 'root'@'58.196 .159.221' (using password: YES)") ,不知道主机'58.196.159.221'是从哪里来的,与代码中的不对应。

(我曾尝试使用 MySql Workbench 连接到 MySQL,并且成功了,所以,我确定它一定是 python 代码有问题)。

我该如何解决这个问题?提前致谢!

最佳答案

pymysql 很棒,因为它是纯 python 实现的——没有外部依赖。

我敢打赌,您没有从外部来源为 root 帐户设置适当的权限。您看到 pymysql.err.OperationalError: (1045,u"Access denied for user 'root'@'58.196.159.221' 的原因是因为您可能只能从 访问 mysql 'root'@'localhost'58.196.159.221 是运行 python 程序的系统的 IP 地址 - 不相信我?运行 ifconfig 并检查您的 IP 地址。

修复:连接到 mysql 控制台并运行以下命令:

GRANT ALL ON root.* TO 'root'@'58.196.159.221' IDENTIFIED BY 'ENTER_PASSWORD_HERE' ;
FLUSH PRIVILEGES;

这将允许远程访问 mysql。

如果你只想从本地主机访问 mysql,你可以运行这个:

GRANT ALL ON root.* TO 'root'@'localhost' IDENTIFIED BY 'ENTER_PASSWORD_HERE' ;
FLUSH PRIVILEGES;

如果您想从任何 IP 地址授予访问权限:

GRANT ALL ON root.* TO 'root'@'%' IDENTIFIED BY 'ENTER_PASSWORD_HERE' ;
FLUSH PRIVILEGES;

FLUSH PRIVILEGES 从 mysql 数据库中重新加载权限,这在您更改用户权限后是必需的。

关于python - pymysql无法连接到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com