此错误同时发生在pymysql
和mysql-connector-python
。但不是MySQL外壳。MySQL shell通常可以通过mysql -u root -p
登录。在
错误如下:
In [1]: import mysql.connector
In [2]: mydb = mysql.connector.connect(
...: host="localhost",
...: user="root",
...: passwd="password"
...: )
ProgrammingError: 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
或者
^{pr2}$Python3.7版,运行在MacOSX10.14上。MySQL8.0.16版。在
我在网站上搜索了所有的答案。没有找到解决办法,所以想把这个解决方案记录下来,以帮助其他遇到类似情况的人。在
pymysql
停止工作的罪魁祸首应该是升级到MySQL 8。MySQL 8的密码验证比之前的5.7更强。从8级降到5.7级是我不想经历的痛苦。通过编辑my.cnf
恢复到传统身份验证的简单尝试没有成功。在然后我读了这个博客:https://blog.csdn.net/zoe9698/article/details/78171465(中文)。在
基本上是说用户不应该是
root
。Python连接被认为是“远程”的,因此禁止记录为root
。在所以只需创建另一个用户并将所有特权授予它。在
将代码中的
root
替换为user
,错误就消失了。在相关问题 更多 >
编程相关推荐