MySQL ERROR 1045 (28000) 报错解决方法
当连接 MySQL 数据库时遇到 ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' 错误,通常意味着身份验证失败或密码错误。在忘记 root 密码且无法通过常规方式登录的情况下,可以通过修改配置文件跳过权限表验证来重置密码。以下是具体的操作流程。
修改配置文件跳过权限验证
首先,需要找到 MySQL 的安装目录或数据目录,定位到配置文件 my.ini(部分版本可能为 my.cnf)。使用记事本或其他文本编辑器打开该文件。
在文件中搜索关键字 mysqld。在该标识符下方添加一行内容:skip-grant-tables。这一步的作用是告诉 MySQL 服务器在启动时不加载授权表,从而允许任何人无需密码即可连接数据库。
注意:如果系统提示无法直接保存 my.ini 文件,可能是因为权限不足或文件被占用。此时可以将文件剪切到桌面,修改保存后,再将其复制回 MySQL 的原始目录下覆盖原文件。
重启 MySQL 服务
保存配置文件后,必须重启 MySQL 服务以使更改生效。可以通过 Windows 的服务管理器(services.msc)停止并启动 MySQL 服务,或者使用命令行指令进行重启。
无密码登录并重置 Root 密码
服务重启完成后,打开命令提示符(CMD),输入以下命令尝试登录:
mysql -u root -p
当系统提示输入密码(Password:)时,直接按下回车键。由于之前配置了 skip-grant-tables,此时应能成功进入 MySQL 命令行界面。
进入数据库后,依次执行以下 SQL 语句:
- 切换数据库:切换到存储用户信息的 mysql 数据库。
use mysql; - 更新密码:将 root 用户的密码修改为新密码。请注意,新版 MySQL(5.7.6+ 及 8.0+)通常使用
authentication_string字段或ALTER USER语句,但在此经典教程场景中,我们沿用原文提供的UPDATE语法(适用于较老版本如 5.6 及以下)。
UPDATE user SET password=PASSWORD("123456") WHERE user='root'; - 刷新权限:使修改立即生效。
FLUSH PRIVILEGES; - 退出:
quit;
风险提示:上述 password() 函数仅适用于 MySQL 5.7 之前的版本。如果是 MySQL 8.0 及以上版本,请改用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';,否则可能会报错或导致密码格式不兼容。
恢复配置并重启
密码重置成功后,必须恢复正常的权限验证模式。再次打开 my.ini 配置文件,删除之前添加的 skip-grant-tables 这一行,然后保存并关闭文件。
最后,再次重启 MySQL 服务。此时,你便可以使用刚刚设置的新密码(如 123456)正常登录 MySQL 数据库了。
以上就是解决 MySQL ERROR 1045 Access denied 错误的详细内容,更多关于 MySQL 密码重置的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













