1.首先确认服务器出于安全的状态,最安全的状态是到服务器的Console上面操作,并且拔掉网线,或者可以使用--skip-networking限制只能从本地连接
2.修改MySQL的登录设置:
  1. # vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables,用来跳过授权表
例如:
  1. [mysqld]
  2. skip-grant-tables
  3. skip-networking
保存并且退出vim
3.重新启动mysqld
  1. # /etc/init.d/mysqld restart
  2. Stopping MySQL: [ OK ]
  3. Starting MySQL: [ OK ]
4.登录并修改MySQL的root密码
  1. # /usr/bin/mysql
  2. mysql> use mysql ;
  3. mysql> update user set password=password('new-password') where User='root';
  4. mysql> flush privileges ;
  5. mysql> \q
  6. Bye
5.将MySQL的登录设置修改回来
  1. # vim /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables,skip-networking删除保存并且退出vim。
6.重新启动mysqld
  1. # /etc/init.d/mysqld restart
  2. Stopping MySQL: [ OK ]
  3. 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命令更改密码。