自己的华为云服务器不经常用,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
主要还是找到[mysqld]所在的文件,网上大部分说是my.cnf,这还要看个人mysql的安装情况,比如我的就是需要改mysqld.cnf
root@hecs:~# vi /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下添加skip-grant-tables,然后保存并退出
root@hecs:~# /etc/init.d/mysql restart
不同的安装重启方式不一样,都试试(service mysql restart、service mysqld restart、systemctl start mysqld、/etc/init.d/mysqld restart)
重启以后,执行mysql -uroot -p(不需要密码直接Enter)进入mysql命令行
注意:如果执行修改密码命令报错,执行后报错 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