sqlalchemy.exc.operationalerror: (pymysql.err.operationalerror) (1045, "access denied for user 'root'@'localhost' (using password: yes)")
代码如下:
报错如下:
报错分析:
密码错误 2. 字符编码 错误 3.版本问题 ,4 权限问题
密码错误:
可以通过 cmd 尝试登入mysql 如果可以登入可以排除
mysql -u root -p
字符编码错误解决方式(很少这种情况):
# SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:Password123$@localhost:3306/Graduationdesign?charset=utf8"
设置编码: ?charset=utf8
版本问题,也就是我这个问题,这个bug搞了我一下午 ,想着换个版本试一下结果就可以了
原因可能是:mysql8 版本 与 mysql 5版本的密码加密插件不同的原因:
为了提供更安全的密码加密,
MySQL8.0的首选默认认证插件是caching_sha2_password,
而不是mysql_native_password
解决方法1:.使用mysql 5.7 版本
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
修改验证方式
访问权限 ,用户只允许在本地连接,修改成指定ip 或者 %
如:
mysql -u root -p
use mysql ;
select host,user from user ;
updata set host='%' where user ='root'
希望对你有帮助
来源地址:https://blog.csdn.net/weixin_63903477/article/details/130569934