1.首先关闭数据库
service mysqld stop
2.修改配置文件/etc/my.cnf,按i键插入,按esc键退出插入模式,键盘输入:wq保存配置文件
vi /etc/my.cnf
将[mysqld]下的skip-grant-tables注释取消掉,没有skip-grant-tables注释或者[mysqld]就自己写在里面
[mysqld]
skip-grant-tables
3.启动数据库
service mysqld start
4.登录数据库,输入密码直接按回车就登录进mysql了
mysql -uroot -p
5.清空数据库密码
mysql> update user set authentication_string='' where user='root';
mysql> flush privileges;
6.按之前的操作,把skip-grant-table注释掉
7.查看你的user和host的映射
mysql> use mysql;
mysql> select user,host from user;
我这里root对应的是%
8.根据上方映射修改root的密码,密码包含大小写和特殊字符
mysql> alter user 'root'@'%' identified by '你的新密码';
mysql8之前版本使用
mysql> set password for 'root'@'%'=password('你的新密码');