忘记mysql的root密码是很正常的一件事情,但是想要重置root用户的密码却不简单,此处是ubuntu下重置密码的一种方式,亲测有效;
在介绍修改密码之前,先介绍一个文件/etc/mysql/debian.cnf.其主要内容如下图:
里面有一个debian-sys-maint用户,这个用户只有Debian或Ubuntu服务器才有,所以如果您的服务器是Debain或Ubuntu,debian-sys-maint是个Mysql安装之后自带的用户,具体作用是重启及运行mysql服务。所以如果忘了root密码,可以通过这个用户来重设密码。
重置的具体操作步骤如下:
> cd /etc/mysql > sudo vim debian.cnf
> mysql -u debian-sys-maint -p
然后输入文件中的password值,即可进入mysql。
> use mysql;
>show fields from user; 或者(describe user;)
authentication_string这列代表的就是密码(注:mysql8以前的版本这个字段是password)
update user set Host='%' where User='root'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
注意此处,使用了关键字mysql_native_password,使用password(‘123456’)的方式貌似不行,因为password函数是mysql8之前支持的方式。