忘记了MySQL数据库的root密码,怎么办? 大家往往会想到skip-grant-tables参数,具体步骤如下: 1. 关闭MySQL数据库,因为root密码忘记了,mysqladmin无法使用,此刻,只能经过kill pid关闭程序。 在这里,科普一下kill 和kill -9的区别 mysql> select user,host,password from test.user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +------+-----------+-------------------------------------------+ 1 row in set (0.00 sec) mysql> update test.user set password=password("hello") where user="root" and host="localhost"; Query OK, 1 row affected (0.15 sec) Rows matched: 1 Changed: 1 Warnings: 0 3. 将上述三个文件copy回源数据库
4. 获取mysqld的pid,经过kill -HUP `pidof mysqld`方式让mysqld进程重新加载配置文件 <div background-color:#f5f5f5;"=""> [root@keepalived01 ~]# mysql -phello Warning: Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) [root@keepalived01 ~]# kill -HUP 4283 [root@keepalived01 ~]# mysql -phello 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 2528 Server version: 5.6.26 MySQL Community Server (GPL) Copyright (c) 2000, 2015, 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> 经过上述输出能够看出,kill -HUP之前,直接用密码hello登录被回绝,kill -HUP之后,就能够直接登录了。 当然,以上方法仅供参考,在生产上慎用,毕竟安全名列前茅,天晓得哪里会出现问题。 (责任编辑:好模板) |