CentOS 6.5下安装MySQL后重置root密码方法

时间:2021-04-02 15:50:44

今天在linux下安装了mysql,但是设置密码的时候瞎按了几下,结果悲剧了,密码完全不知道。输入的时候也没个提示。找了一大堆教程,发现都改不了,最后结合自己的手动改造,成功重置了密码。
首先要启动mysql

#service mysqld start

注意 mysqld后面有个d
启动成功后查看mysql进程信息,获取mysqld_safe的安装目录(非常关键):

#ps -ef | grep -i mysql
root 3466 1 0 01:45 pts/1 00:00:00 /bin/sh /**usr/bin**/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/BSC.TEST.pid
mysql 3569 3466 16 01:45 pts/1 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/BSC.TEST.err --pid-file=/var/lib/mysql/BSC.TEST.pid
root 3597 3105 0 01:45 pts/1 00:00:00 grep -i mysql

可以看到mysqld_safe的安装位置:/usr/bin/
接着执行一下命令停止mysql:

#service mysqld stop

以安全方式启动mysql:

#/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &

稍等一会儿,然后执行以下语句:

#/usr/bin/mysql -u root mysql

注意:mysql与mysql_safe目录一样,都是:/usr/bin/下,这个是通过“ps -ef | grep -i mysql”命令得到的。

出现“mysql>”提示符后输入(这里我设置了password为密码,可以改成其他的,mysql指令后面都有’;’不要忘记加了):

mysql> update user set password = Password('password') where User = 'root';

回车后执行(刷新MySQL系统权限相关的表):

mysql> flush privileges;

再执行exit退出:

mysql> exit;

退出后,使用以下命令登陆mysql,试试是否成功:

#service mysqld start
#mysql -u root -ppassword

-p后面是明文密码,不要加空格。
这里用明文密码登录好些,不用明文密码的话就有问题。