运行Flask应用时出现MySQL 1045权限错误,该如何解决?
Flask连接MySQL 1045权限错误解决方法
错误1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的核心原因是MySQL的root@localhost账号需要密码验证,但你的代码中密码字段为空,或者账号权限配置异常。以下是具体解决步骤:
验证并修正root账号密码
先通过MySQL客户端确认root账号的有效密码:mysql -u root -p输入密码成功登录后,修改代码中的
password参数为实际密码:mydb= mysql.connector.connect( host="localhost", user="root", password="你的root账号密码", database="hosp_checkin" )重置root账号权限(适用于密码丢失或权限异常)
如果不确定密码或权限配置有问题,可按以下步骤重置:- 停止MySQL服务:
- Linux/Mac:
sudo systemctl stop mysql - Windows:通过服务管理器停止MySQL服务
- Linux/Mac:
- 跳过权限验证启动MySQL:
- Linux/Mac:
sudo mysqld_safe --skip-grant-tables & - Windows:进入MySQL安装目录的
bin文件夹,执行:mysqld --skip-grant-tables
- Linux/Mac:
- 无密码登录MySQL:
mysql -u root - 更新账号密码或权限:
设置新密码(推荐):
若需无密码登录(仅测试环境使用):USE mysql; UPDATE user SET authentication_string=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES;USE mysql; UPDATE user SET authentication_string='' WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES; - 重启MySQL服务,重新尝试连接。
- 停止MySQL服务:
确认目标数据库存在
登录MySQL后检查hosp_checkin数据库是否存在:SHOW DATABASES;若不存在,先创建数据库:
CREATE DATABASE hosp_checkin;
内容的提问来源于stack exchange,提问作者Moeez Shaikh
相关产品推荐
相关产品推荐

