Ubuntu 18.04 MySQL 5.7.27重置root密码

修改my.cnf配置文件:
Ubuntu 18.04版本的配置文件是mysqld.cnf,路径是/etc/mysql/mysql.conf.d/mysqld.cnf,其它版本Linux的my.cnf 文件路径可能是/etc/my.cnf。
vi /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]的段中加上一句:skip-grant-tables,如下:
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
skip-grant-tables
:wq

重启mysql服务:
#sudo systemctl restart mysql.service

登陆并修改密码:
#mysql -uroot
mysql> use mysql

修改密码:

MySQL 5.7.6 以及最新版本:

1
2
mysql>update user set authentication_string=PASSWORD('newpass') where User='root';
mysql>FLUSH PRIVILEGES;

MySQL 5.7.5 或更早之前的版本:

1
2
mysql> update user set password=PASSWORD('newpass') where User='root'; 
mysql>FLUSH PRIVILEGES;

登陆测试:

将配置文件mysqld.cnf (或my.cnf) 的设置修改回来,重启MySQL服务,并登陆测试:

#mysql -u root -p

输入设置的密码,测试修改成功。

备份数据库:
#mysqldump -uroot -hlocalhost -p itkylindb > itkylin.com-dbbak-20191209.sql