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

Flask注册页面出现MySQL 1046错误:未选择数据库,求解决方法

解决Flask注册页面的MySQL (1046, 'No database selected') 错误

嘿,这个问题我之前也碰到过,本质就是你的Flask应用已经成功连接到MySQL服务器了,但没有指定要操作的具体数据库,所以MySQL不知道该用哪个库来处理你的注册请求。下面是一步步的解决方法:

1. 先确认目标数据库已经创建

首先你得确保MySQL服务器里已经存在你要使用的数据库。打开MySQL命令行或者可视化工具(比如Navicat),执行创建数据库的SQL:

CREATE DATABASE 你的数据库名; -- 示例:CREATE DATABASE flask_login_db;

2. 完善Flask的MySQL配置项

检查你的Flask代码里的数据库配置,必须加上MYSQL_DB这一项来指定要使用的数据库。完整的配置应该像这样:

from flask import Flask
from flask_mysqldb import MySQL

app = Flask(__name__)

# 配置MySQL连接参数
app.config['MYSQL_HOST'] = 'localhost'  # 本地服务器一般填localhost,远程的话填对应IP
app.config['MYSQL_USER'] = '你的MySQL用户名'  # 比如默认的root
app.config['MYSQL_PASSWORD'] = '你的MySQL密码'
app.config['MYSQL_DB'] = 'flask_login_db'  # 这里填你刚才创建的数据库名
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'  # 可选配置,让查询返回字典格式的结果

# 初始化MySQL实例
mysql = MySQL(app)

3. 排查权限或拼写问题

如果已经创建了数据库、配置也没问题还是报错,那可能是这两个原因:

  • 数据库名拼写错误:检查MYSQL_DB的值和你实际创建的数据库名是否完全一致(MySQL数据库名在部分系统下区分大小写)
  • 用户权限不足:你的MySQL用户没有访问该数据库的权限,执行下面的SQL授权:
GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost';
FLUSH PRIVILEGES;

4. 确认MySQL服务正在运行

最后别忘了检查你的MySQL服务是否处于启动状态:

  • Windows:打开「服务」面板,找到MySQL服务并确保它是「正在运行」状态
  • Linux/macOS:执行命令sudo systemctl start mysql(如果是MariaDB的话换成sudo systemctl start mariadb)

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

重启Flask应用后再试试注册功能,应该就能正常连接数据库了~

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:02:12