1.首先确认服务器出于安全的状态,最安全的状态是到服务器的Console上面操作,并且拔掉网线,或者可以使用--skip-networking限制只能从本地连接
2.修改MySQL的登录设置:
在[mysqld]的段中加上一句:skip-grant-tables,用来跳过授权表
例如:
[mysqld]
skip-grant-tables
skip-networking
保存并且退出vim。
3.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登录并修改MySQL的root密码
# /usr/bin/mysql
mysql> use mysql ;
mysql> update user set password=password('new-password') where User='root';
mysql> flush privileges ;
mysql> \q
Bye
5.将MySQL的登录设置修改回来
将刚才在[mysqld]的段中加上的skip-grant-tables,skip-networking删除保存并且退出vim。
6.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
说明:
1)若无--skip-networking选项
通过远程主机可以通过主机名或者ip直接连接
# mysql -h192.168.8.30
使用--skip-networking选项
# mysql -h192.168.8.30
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.8.30' (111
2)在使用skip-grant-tables期间,无法使用grant,show grants,无法进行授权和更改密码,只能通过update命令更改密码。