You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask连接MySQL报1045 root访问拒绝,配置testuser不生效问题

问题根源

你报错的核心原因是使用了和当前MySQL扩展不匹配的配置项,导致配置完全未生效,扩展使用了默认的root用户、空密码发起连接。

解决步骤

  • 第一步:修正配置参数名
    你当前导入的是flask_mysqldb扩展,它的配置项不带_DATABASE后缀,把你的数据库配置替换为以下内容:
# 正确的flask-mysqldb配置项
app.config['MYSQL_USER'] = 'testuser1'
app.config['MYSQL_PASSWORD'] = 'password123'
app.config['MYSQL_DB'] = 'MyDB'
app.config['MYSQL_HOST'] = 'localhost'

你之前使用的MYSQL_DATABASE_*格式是旧版flask-mysql扩展的配置,和你现在用的扩展完全不兼容,所以配置没有被读取到。

  • 第二步:清理冗余导入
    删掉代码里没用的import mysql.connector,避免多个MySQL连接库产生冲突。

  • 第三步:校验代码缩进和执行逻辑
    确认所有app.config配置代码的缩进层级和app = Flask(__name__)、mysql.init_app(app)一致,没有被包裹在其他函数、条件判断块里,确保配置代码会被正常执行。
    可以在mysql.init_app(app)前加一行打印代码校验配置是否加载成功:

print("当前加载的数据库用户:", app.config.get('MYSQL_USER'))

如果运行后输出的不是testuser1,说明配置代码本身没有被执行,检查代码逻辑即可。

  • 第四步:确认数据库用户权限
    登录MySQL命令行执行以下语句,确认testuser1有本地访问MyDB的权限:
-- 查看权限
SHOW GRANTS FOR 'testuser1'@'localhost';
-- 缺少权限的话执行授权
GRANT ALL PRIVILEGES ON MyDB.* TO 'testuser1'@'localhost';
FLUSH PRIVILEGES;

内容的提问来源于stack exchange,提问作者marsh1979

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:39:01