为了写这篇文档,假装一下忘记密码!!!!
首先我数据库是正常的,可以使用。
root@localhost:~# mysql -uroot -p
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
rows in set (0.00 sec)
mysql> exit
Bye
假如我忘记了密码,现在无法登陆数据库,会提示密码错误。
root@localhost:~# mysql -uroot -p
Enter password:
ERROR (): Access denied for user 'root'@'localhost' (using password: YES)
1)、首先安全停掉mysql服务
root@localhost:~# /etc/init.d/mysql stop
Shutting down MySQL
.... *
2)、编辑配置文件,在[mysqld]添加skip-grant-tables
(--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证)
3)、启动mysql服务
root@localhost:~# /etc/init.d/mysql start
Starting MySQL
..... *
4)、登录数据库并修改密码
root@localhost:~# mysql -uroot
mysql>
mysql> update mysql.user set password=PASSWORD('jeqThs1qOVbHGRz0') where user='root';
Query OK, rows affected (0.00 sec)
Rows matched: Changed: Warnings: mysql> flush privileges;
Query OK, rows affected (0.00 sec) mysql> exit
Bye
5)、再次编辑配置文件,删除skip-grant-tables
root@localhost:~# vim /etc/mysql/my.cnf
6)、修改之后重启mysql服务
root@localhost:~# /etc/init.d/mysql restart
Shutting down MySQL
.... *
Starting MySQL
..... *
7)、此时就可以用新密码登录啦
root@localhost:~# mysql -uroot -pjeqThs1qOVbHGRz0
mysql>
mysql> exit
Bye