1. 用系统管理员账户停止mysql的运行
- service mysqld stop
2. 编辑/etc/my.cnf添加skip_grant_tables选项
- vi /etc/my.cnf
- …
- [mysqld]
- …
- skip_grant_tables
- …
通过添加skip_grant_tables启动mysql,不会加载具有访问权限的数据表。
3. 启动mysql
- mysql -uroot -p
- # 空密码
- # 切换到mysql数据库
- root@linuxjcq: (none) 09:28:44
- mysql> USE mysql;
- # 更改密码
- root@linuxjcq: mysql 09:31:01
- mysql> UPDATE user SET password=PASSWORD('new password')
- -> WHERE user='root' AND host='localhost';
4. 去除配置文件中的选项
- vi /etc/my.cnf
- …
- [mysqld]
- …
- # skip_grant_tables
- …
5. 重启数据库后,使用新密码登录即可
- service mysqld restart