经常有同事忘记了root用户密码。这里把Linux上的重置步骤描述一下:
1)停止mysqld进程
查看mysqld的进程信息。如:
# ps -ef | grep -i mysql
root 7631 1 0 11:39 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/mmdev-com.pid
mysql 7758 7631 1 11:39 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/mmdev-com.err --pid-file=/var/lib/mysql/mmdev-com.pid
# service stop mysqld
2)重启mysqld进程,附加命令参数 --skip-grant-tables 和
--skip-networking。第一个参数可以关闭身份认证。第二个参数则是为了安全考虑,关闭了网络访问。
# /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/mmdev-nq-com.err --pid-file=/var/lib/mysql/mmdev-com.pid --skip-grant-tables --skip-networking
3)在mysqld本机启动mysql客户端
# mysql
4)使用下面的SQL语句修改root密码
5)停止mysqld进程
与第一步做法相同。
6)正常启动mysqld,不带 --skip-grant-tables 和 --skip-networking 这两个参数。