项目场景:
定制软件开发用框架搭起项目,定制软件开发连接数据库中出现1045的问题。
问题描述
提示:定制软件开发确保数据库用户、密码没问题后。
在flask启动后,访问mysql的时候出现如下问题:
.exc.OperationalError: (pymysql.err.OperationalError) (1045, “Access denied for user ‘root’@‘localhost’ (using password: YES)”) (Background on this error at: http://sqlalche.me/e/e3q8)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)") (Background on this error at: http://sqlalche.me/e/e3q8)
- 1
原因分析:
提示:这个问题搜了很多都是提示要更改数据库密码,还有一些是本地数据不对外开放问题,我的问题是依赖版本问题。
原因一般有几种:
- 常见问题有mysql登录出现1045的问题,这个问题很简单,更改本地的my.ini文件里面的参数即可。
- 确保数据库登录、访问没问题后,就是连接数据语句出现了错误。
解决方案:
提示:需要改掉数据连接URI地址
首先我测试了数据库登录注册有没有问题,这里从网上搜了一个pymysql连接数据库的代码。
import pymysqldef connectdb(): print("连接到mysql服务器...") db = pymysql.connect( host="localhost", user="root", passwd="123", port=3306, db="Graduationdesign", charset="utf8", cursorclass=pymysql.cursors.DictCursor ) print("连接成功!") return dbconnectdb()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
测试通过后,就可以修改URI地址,从文档找出合适当前版本的连接方法
我之前用的连接方法换到了朋友的环境下竟然不能用了,我认为是依赖版本的问题,我用的SQLAlchemy和朋友用的不一样,所以出现了问题,这里更换了URI就不会报错了。
# SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:Password123$@localhost:3306/Graduationdesign?charset=utf8" SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123@localhost:3306/Graduationdesign"
- 1
- 2
SQLAlchemy 1.4 文档地址: