如果忘记了root密码,可以通过下面的流程来重置密码:
注:需要重启数据库
由于不知道root的密码,不能通过常规的方式来关闭数据库
通过杀掉进程的方式来强制 关闭数据库
[root@localhost ~]# ps -ef|grep mysql
root 26764 55613 0 Apr04 pts/2 00:00:00 /bin/sh ./mysqld_safe --defaults-file=/etc/my.cnf
mysql 27174 26764 0 Apr04 pts/2 00:01:04 /data/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/data --datadir=/var/lib/mysql --plugin-dir=/data/lib/plugin --user=mysql --log-error=/log/err.log --open-files-limit=10240 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root 27192 55613 0 Apr04 pts/2 00:00:00 ./mysql -usystem -px xxxxxxxxx mysql
root 34544 18985 0 12:11 pts/3 00:00:00 /data/bin/mysql -ufire -px xxxxxxxxx
root 37683 13290 0 19:32 pts/0 00:00:00 grep mysql
[root@localhost ~]# kill `cat /var/run/mysqld/mysqld.pid`
[root@localhost bin]# ./mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking&
[1] 38252
更改管理员 用户密码
[root@localhost bin]# ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.48-log production environment
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.
mysql> select user();
+--------+
| user() |
+--------+
| root@ |
+--------+
1 row in set (0.00 sec)
mysql> update mysql.user set password=password('System#2013') where user='system';
Query OK, 0 rows affected (0.15 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.19 sec)
关闭数据库并重新启动数据库
[root@localhost bin]# ./mysqladmin -usystem shutdown -p
Enter password:
160405 19:48:22 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done ./mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking
[root@localhost bin]# ./mysqld_safe --defaults-file=/etc/my.cnf &
[1] 38903
[root@localhost bin]# 160405 20:07:43 mysqld_safe Logging to '/log/err.log'.
160405 20:07:43 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
注:需要重启数据库
由于不知道root的密码,不能通过常规的方式来关闭数据库
通过杀掉进程的方式来强制 关闭数据库
[root@localhost ~]# ps -ef|grep mysql
root 26764 55613 0 Apr04 pts/2 00:00:00 /bin/sh ./mysqld_safe --defaults-file=/etc/my.cnf
mysql 27174 26764 0 Apr04 pts/2 00:01:04 /data/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/data --datadir=/var/lib/mysql --plugin-dir=/data/lib/plugin --user=mysql --log-error=/log/err.log --open-files-limit=10240 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root 27192 55613 0 Apr04 pts/2 00:00:00 ./mysql -usystem -px xxxxxxxxx mysql
root 34544 18985 0 12:11 pts/3 00:00:00 /data/bin/mysql -ufire -px xxxxxxxxx
root 37683 13290 0 19:32 pts/0 00:00:00 grep mysql
[root@localhost ~]# kill `cat /var/run/mysqld/mysqld.pid`
以下面方式
启动数据库,忽略授权验证和禁止网络客户端连接
[root@localhost bin]# ./mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking&
[1] 38252
更改管理员 用户密码
[root@localhost bin]# ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.48-log production environment
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.
mysql> select user();
+--------+
| user() |
+--------+
| root@ |
+--------+
1 row in set (0.00 sec)
mysql> update mysql.user set password=password('System#2013') where user='system';
Query OK, 0 rows affected (0.15 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.19 sec)
[root@localhost bin]# ./mysqladmin -usystem shutdown -p
Enter password:
160405 19:48:22 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done ./mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking
[root@localhost bin]# ./mysqld_safe --defaults-file=/etc/my.cnf &
[1] 38903
[root@localhost bin]# 160405 20:07:43 mysqld_safe Logging to '/log/err.log'.
160405 20:07:43 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26506993/viewspace-2076005/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26506993/viewspace-2076005/