昨天一切正常。今天,当我启动 mysql 时,它开始给我以下错误消息
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我不知道它何时以及如何设置密码。
现在我正在尝试设置密码,但它没有更新它。
我正在使用以下步骤来恢复密码。
- 停止Mysql服务
- 在cmd中写下:
C:\Program Files\MySQL\MySQL Server 5.5>mysqld.exe
--defaults-file="my.ini" --init-file="d:\mysql-init.txt" --console
它开始向我显示进度,但在收到此消息后停止响应
160504 18:01:54 [Note] Server socket created on IP: '0.0.0.0'.
160504 18:01:54 [Note] Event Scheduler: Loaded 0 events
160504 18:01:54 [Note] mysqld.exe: ready for connections.
Version: '5.5.38' socket: '' port: 3306 MySQL Community Server (GPL)
我等了10多分钟,但之后没有显示任何进展..
请指导我如何解决这个问题。
Thanks
停止mysql服务
编辑my.ini
文件或my.cnf
file
找出[mysqld]
ini 文件中的部分并直接在该部分之后添加此行[mysqld]
skip-grant-tables
重新启动 mysql 服务。
打开 MySQL 控制台
现在我们要重置root用户的密码,当然这可以用于重置任何用户的密码。
在mysql>命令提示符处输入以下2条命令,每条命令末尾有一个分号,每行后按ENTER键向mysql发出命令。
MYSQL 5.7 之前版本
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
MYSQL 5.7 版本后列名发生变化
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
请注意,更新可能会报告它已经更新了不止一行,因为实际上有 3 个用户帐户的用户 ID 为“root”,每个帐户都有不同的域,即 127.0.0.1、localhost 和 ::1
现在输入quit
在mysql命令提示符下退出mysql。
停止mysql服务
编辑 my.ini 文件或 my.cnf 文件
在 ini 文件中找到 {mysqld] 部分并删除skip-grant-tables
我们之前添加的参数。
不要将此参数留在 ini 文件中,这是一个高安全漏洞。
重新启动 mysql 服务。
您现在应该能够使用用户 ID“root”和您刚刚为该用户设置的新密码登录 phpmyadmin。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)