1、首先关闭mysql,使用`--skip-grant-tables‘ 参数来启动 mysqld
[root@iZwz9ga6kootlfn5ejt8axZ ~]#service mysqld stop [root@iZwz9ga6kootlfn5ejt8axZ ~]#/usr/bin/safe_mysqld --skip-grant-tables&
2、此时可以无密码登录mysql,修改密码
[root@iZwz9ga6kootlfn5ejt8axZ ~]#mysql -uroot mysql>update user set password=password("new_pass") where user="root"; mysql>flush privileges;
密码修改成功。
此时想关闭mysql
[root@iZwz9ga6kootlfn5ejt8axZ ~]# service mysqld stop Stopping mysqld: [ OK ]
命令执行成功,但是
[root@iZwz9ga6kootlfn5ejt8axZ ~]# netstat -tnlp|grep mysql tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 13916/mysqld
发现mysql端口还存在,查看进程
[root@iZwz9ga6kootlfn5ejt8axZ ~]# ps -ef |grep mysql |grep -v grep mysql 13916 12911 0 11:42 pts/3 00:00:00 mysqld --skip-grant-tables
最后使用 mysqladmin shutdown关闭成功
[root@iZwz9ga6kootlfn5ejt8axZ ~]# mysqladmin -uroot -ppassword -S /var/lib/mysql/mysql.sock shutdown
原文地址:http://quliren.blog.51cto.com/9849266/1930863