mysql 数据库忘记密码

自己的华为云服务器不经常用,mysql数据库经常忘记密码。

linux版本号:Linux version 4.15.0-91-generic (buildd@lgw01-amd64-013) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1))

mysql版本号:Server version: 5.7.32-0ubuntu0.18.04.1 (Ubuntu)

主要还是利用网上说的skip-grant-tables

一、修改配置

1、改文件

主要还是找到[mysqld]所在的文件,网上大部分说是my.cnf,这还要看个人mysql的安装情况,比如我的就是需要改mysqld.cnf

root@hecs:~# vi /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]下添加skip-grant-tables,然后保存并退出

mysql 数据库忘记密码

2、重启mysql服务

root@hecs:~# /etc/init.d/mysql restart

不同的安装重启方式不一样,都试试(service mysql restart、service mysqld restart、systemctl start mysqld、/etc/init.d/mysqld restart)

二、修改密码

1、进入mysql

重启以后,执行mysql -uroot -p(不需要密码直接Enter)进入mysql命令行

2、sql语句修改密码

注意:如果执行修改密码命令报错,执行后报错 ERROR 1054(42S22) Unknown column 'password' in ‘field list’ 错误的原因是 5.7版本下的mysql数据库下没有password这个字段,password字段改成了authentication_string

mysql> update user set password=password("*******") where user="root"; 
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

mysql> update mysql.user set authentication_string=password('*******') where user='root'; 
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> flush privileges;  #立即生效
Query OK, 0 rows affected (0.00 sec)

mysql> quit  #退出mysql

3、重新修改刚才的文件,删除skip-grant-tables,然后重启mysql服务

上一篇:systemctl管理自定义服务模版


下一篇:解决VMware虚拟机挂起后无法连接docker容器