长期不用MySQL数据库或者进行一些操作后用原先的密码无法登录数据库,那么就可以用以下办法修改密码:
- 关闭MySQL服务:
net stop mysql
或在任务管理器中关闭; - 若步骤1使用的是命令关闭服务,则此窗口为窗口1(以管理员身份运行),若不是则用管理员身份打开一个cmd窗口1;
- 在窗口1中进入mysql的bin目录,使用
mysqld -console --skip-grant-tables --shared-memory
命令来跳过权限验证(mysql8.0与其他版本不同的地方在于无法直接使用mysqld --skip-grant-tables来跳过密码登录); - 以管理员身份打开cmd窗口2,进入mysql的bin目录,执行
net stop mysql
命令(确保已经关闭了MySQL服务); - 在窗口2中继续执行
mysqld --console --skip-grant-tables --shared-memory
命令跳过mysql的密码登录; - 以管理员身份打开cmd窗口3,进入mysql的bin目录,执行
mysql -u root -p
命令登录mysql数据库,此处会显示输入密码,直接回车; - 成功连接mysql;
- 在窗口3中执行命令
use mysql;
(使用mysql数据表); - 继续在窗口3中执行命令
update user set authentication_string='' where user='root';
(将密码置为空); - 窗口3中执行
quit;
(退出mysql); - 关闭窗口1与窗口2(一定要关闭);
- 窗口3中关闭MySQL服务:
net stop mysql
(如果上一个MySQL服务没关闭,依旧是无密码登录); - 开启MySQL服务:
net start mysql
; - 执行
mysql -u root -p
登录数据库(此处会显示输入密码,直接回车,因为第四步已经将他置为空了); - 执行命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
(更改密码); - 执行
quit
(退出mysql); - 登录数据库:
mysql -u root -p
(输入新密码,再次登录)。