我的知识记录

MySQL权限表损坏导致1045错误_常见误区纠正_权限表修复方法_2024最新

MySQL 1045错误是数据库连接问题中最常见的错误,几乎每个使用MySQL的人都会遇到。错误信息中的using password: NO/YES是关键线索:NO表示连接时没有发送密码,YES表示发送了密码但验证失败。根据这个线索可以快速定位问题方向。本文从错误原理、原因分析、排查步骤、解决方法四个维度,全面讲解MySQL 1045错误的处理。

原因一:命令行登录时没有输入密码。直接输入mysql命令登录,默认使用当前系统用户名作为MySQL用户名,且不发送密码。如果MySQL的root用户设置了密码,直接输入mysql会提示1045 (using password: NO)。正确的登录命令是:mysql -u root -p,执行后提示输入密码,输入正确密码后登录。-u指定用户名,-p表示需要密码验证。如果密码在命令行直接输入:mysql -u root -p你的密码,注意-p和密码之间没有空格。

原因五:MySQL 8.0的密码插件问题。MySQL 8.0默认使用caching_sha2_password认证插件,而旧版本客户端使用mysql_native_password,可能导致认证失败。如果使用旧客户端连接MySQL 8.0,修改root用户的认证插件:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; FLUSH PRIVILEGES;。或者升级客户端到支持caching_sha2_password的版本。MySQL 8.0的密码字段是authentication_string,PASSWORD()函数在8.0中已废弃,使用ALTER USER修改密码更安全。

原因六:配置文件中的密码不匹配。网站程序(如WordPress、dedecms)的数据库配置文件中填写的密码与MySQL实际密码不一致,会导致1045错误。检查配置文件中的数据库密码,如WordPress的wp-config.php中的DB_PASSWORD,dedecms的data/common.inc.php中的数据库密码。确认配置文件中的密码与MySQL实际密码一致。如果修改了MySQL密码,需要同步更新所有使用该数据库的程序配置文件。同时检查配置文件中的数据库用户名、主机名、数据库名是否正确。

真实经历:网站迁移后数据库连接1045,检查配置文件密码正确,后来发现是MySQL中root用户的host是'%',没有'root'@'localhost',而程序配置的数据库主机是localhost。创建了'root'@'localhost'用户后问题解决。MySQL的用户是用户名+主机名的组合,这个细节很容易忽略。

操作提醒:重置MySQL密码时,skip-grant-tables方式启动后任何人都可以无密码登录,操作完成后立即移除配置并重启。修改密码后执行FLUSH PRIVILEGES刷新权限。MySQL 8.0使用ALTER USER修改密码,不要使用废弃的PASSWORD()函数。

MySQL权限表损坏导致1045错误_常见误区纠正_权限表修复方法_2024最新

标签:

更新时间:2026-08-27 00:13:00

上一篇:SVN版本控制恢复误删文件_虚拟主机实用教程

下一篇:网页打开出错400 Bad Request请求错误修复解决办法