Linux下mysql忘记管理员密码的解决方法
来看看下面
在开启mysql服务的适时候,使用--skip-grant-tables 参数跳过权限检查启动mysql
[root@potato Desktop]# mysqld_safe --skip-grant-tables
161209 00:01:29 mysqld_safe Logging to '/data/mysql/mytest_3306/data/error.log'.
161209 00:01:29 mysqld_safe Starting mysqld daemon with databases from /data/mysql/mytest_3306/data
直接mysql就可以登陆(ps:登陆进去就拥有管理员权限)
[root@potato Desktop]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.34-log Source distribution
Copyright (c) 2000, 2016, 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.
开始改密码,不过这里有个地方要注意
若是直接用set的方式改密码,会报错,因为使用了--skip-grant-table,所以没办法用
root@localhost:mysql.sock 00:02:17 [(none)]>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
所以只能直接改mysql.user权限表了
root@localhost:mysql.sock 00:05:52 [(none)]>use mysql
Database changed
root@localhost:mysql.sock 00:06:10 [mysql]> UPDATE user SET password = password ('root') where user = 'root';
Query OK, 0 rows affected (0.05 sec)
Rows matched: 1 Changed: 0 Warnings: 0
修改完毕便关闭服务
root@localhost:mysql.sock 00:06:16 [mysql]>quit
Bye
[root@potato Desktop]# mysqladmin shutdown
然后正常启动mysql服务,再用修改后的密码登陆
[root@potato Desktop]# mysqld_safe
[root@potato Desktop]# mysql -uroot -proot
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.34-log Source distribution
Copyright (c) 2000, 2016, 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.
root@localhost:mysql.sock 00:08:32 [(none)]>
看,已经成功登陆进去了
ps:mysql管理员忘记密码后,是不是再也不用担心了???