我该如何调试?
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和其他工具是本地的
我可以很好地连接到其他数据库,只有这一个似乎有冲突。
我的主要问题是如何解决此问题,我需要了解的不仅仅是“拒绝访问”
答案 0 :(得分:0)
问题: (1)哪台计算机正在运行您的Python脚本? (2)哪台计算机正在运行您的MySQL命令行? (3)哪台计算机正在运行MySQL数据库?
如果所有这3个问题都没有相同的答案,则可能是MySQL用户管理中的端口问题。换句话说,您的MySQL服务器设置可能不允许远程访问……如果是这样,则有不同的故障排除方法,但是可能需要MySQL中的DBA /专家。
我分别使用了“ sqlalchemy” Python库,它运行良好,特别是如果您通过pandas.read_sql()运行connection_engine时。我从来没有用过pymysql。