自己的华为云服务器不经常用,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,然后保存并退出
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