一、操作思路:
1)停止mysql服务
2)启动时添加“--skip-grant-tables”参数
3)修改密码
4)重启mysql服务
二、执行过程
# netstat -tunlp | grep 330* tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 13157/mysqld tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 13874/mysqld tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 12388/mysqld # 这里假设忘记的是3308实例的root密码 # 先安全关闭另外两个实例 # /data/3306/mysql stop # /data/3307/mysql stop # killall mysqld # mysqld_safe --defaults-file=/data/3308/my.cnf --skip-grant-tables & [2] 10883 # 161011 22:05:47 mysqld_safe Logging to '/data/3308/mysql_oldboy3308.err'. 161011 22:05:48 mysqld_safe Starting mysqld daemon with databases from /data/3308/data # mysql -uroot -p -S /data/3308/mysql.sock Enter password: (这里直接回车就进去了) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.32-log Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> update mysql.user set password=password("redhat123456") where user='root'; Query OK, 4 rows affected (0.00 sec) Rows matched: 4 Changed: 4 Warnings: 0 # 更新root账号的密码 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) # 刷新权限 # netstat -tunlp | grep mysql tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 11620/mysqld [1]+ Done mysqld_safe --default-file=/data/3308/my.cnf --skip-grant-tables --user=mysql # pkill mysql # netstat -tunlp | grep mysql # /data/3308/mysql start Starting MySQL... # echo $? 0
三、验证
# mysql -uroot -predhat123456 -S /data/3308/mysql.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.32-log Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
转载于:https://blog.51cto.com/molewan/1861096