Flask框架下的sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045)问题

项目场景:

用flask框架搭起项目,连接数据库中出现1045的问题。

问题描述

提示:确保数据库用户、密码没问题后。
在flask启动后,访问mysql的时候出现如下问题:
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)
Flask框架下的sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045)问题

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文件里面的参数即可。
  2. 确保数据库登录、访问没问题后,就是连接数据语句出现了错误。

解决方案:

提示:需要改掉数据连接URI地址

首先我测试了数据库登录注册有没有问题,这里从网上搜了一个pymysql连接数据库的代码。
Flask框架下的sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045)问题

import pymysql

def connectdb():
    print("连接到mysql服务器...")
    db = pymysql.connect(
        host="localhost",
        user="root",
        passwd="123",
        port=3306,
        db="Graduationdesign",
        charset="utf8",
        cursorclass=pymysql.cursors.DictCursor
    )
    print("连接成功!")
    return db

connectdb()

测试通过后,就可以修改URI地址,从文档找出合适当前版本的连接方法
我之前用的连接方法换到了朋友的环境下竟然不能用了,我认为是依赖版本的问题,我用的SQLAlchemy和朋友用的不一样,所以出现了问题,这里更换了URI就不会报错了。
Flask框架下的sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045)问题

# SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:Password123$@localhost:3306/Graduationdesign?charset=utf8"
  SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123@localhost:3306/Graduationdesign"

SQLAlchemy 1.4 文档地址:https://docs.sqlalchemy.org/en/14/errors.html#error-e3q8

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年3月29日 上午7:39
下一篇 2023年3月29日 上午7:40

相关推荐