无法在Python中连接到MySql

时间:2019-10-14 22:03:47

标签: python mysql

我该如何调试?

mydb = pymysql.connect(
            host="<db-host-ip>",
            port=3306,
            user="<username>",
            password="<password>",
            database="<dbname>"
 )

失败:

pymysql.err.OperationalError: (1045, "Access denied for user '<myuser>'@'<long_and_boring_hostname>' (using password: YES)")

与此同时:

mysql --host=<db-host-ip> --user=<username> --password=<password> <dbname>

连接很好。

我还可以从Java和MySql工作台连接到数据库

我尝试使用mysql.connector,同样的错误

我可以从Python连接到另一个数据库

为什么我的用户名后Python错误的主机名很长?可以抑制吗?

**更多详细信息**

MySql是远程的,poython和其他工具是本地的

我可以很好地连接到其他数据库,只有这一个似乎有冲突。

我的主要问题是如何解决此问题,我需要了解的不仅仅是“拒绝访问”

1 个答案:

答案 0 :(得分:0)

问题: (1)哪台计算机正在运行您的Python脚本? (2)哪台计算机正在运行您的MySQL命令行? (3)哪台计算机正在运行MySQL数据库?

如果所有这3个问题都没有相同的答案,则可能是MySQL用户管理中的端口问题。换句话说,您的MySQL服务器设置可能不允许远程访问……如果是这样,则有不同的故障排除方法,但是可能需要MySQL中的DBA /专家。

我分别使用了“ sqlalchemy” Python库,它运行良好,特别是如果您通过pandas.read_sql()运行connection_engine时。我从来没有用过pymysql。