方法一:
环境配置:ubuntu18.04,MySQL版本为5.7.25
解决方法:
1.打开/etc/mysql/debian.cnf文件,里面存储了系统管理员的密码
mysql -udebian-sys-maint -p
2. 用udebian-sys-maint账号登录MySQL
mysql -udebian-sys-maint -p
再输入对应debian.cnf里对应的密码,以管理员身份进去
3.进入控制台后.按以下步骤进行(记住使用函数PASSWORD)
use mysql;
update user set authentication_string=PASSWORD('新密码') where user='root';
quit;
service mysql restart
4.重新登录
mysql -u root -p
方法二:
参考https://blog.csdn.net/wangliyao518/article/details/83011522
1、打开MySQL目录下的配置文件(我的目录是/etc/mysql/mysql.conf.d/mysqld.cnf, 可能有的系统是my.ini),在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
2、重启MySQL服务
service mysql restart
3、在命令行中输入“mysql -u root -p”(不输入密码),回车即可进入数据库。
4、执行,“use mysql;”使用mysql数据库。
5、执行,“update user set authentication_string=PASSWORD("rootadmin") where user='root';”(修改root的密码, 有的mysql表列名可能是password, 需要是命令:"update user set password=PASSWORD("rootadmin") where user='root';")
(记住使用函数PASSWORD)
6、打开MySQL目录下的/etc/mysql/mysql.conf.d/mysqld.cnf文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
7、重启MySQL服务。( service mysql restart)
8、在命令行中输入“mysql -u root -p”,问题搞定!
结果如下: