Ubuntu 16.0 系统下忘记了 MySQL 的登录密码,现记录从安全模式进入数据库的解决方法,供参考。
文章来源:ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题
这里只是忘记 MySQL 的密码,不涉及安装问题,故不检查安装是否成功。
重置开始
mysql -u root -p
由于忘记密码,这里提示登陆失败,所以从安全模式进入,然后再重置密码。
sudo /etc/init.d/mysql stop
-------------------------------------
[sudo] 密码:
[ ok ] Stopping mysql (via systemctl): mysql.service.
$ sudo /usr/bin/mysqld_safe
输入第一行,结束 MySQL 运行,成功,会提示下面两行;
输入第四行,成功。没有任何报错则可以另外打开一个终端窗口进行下一步操作;
但是一般会报错,比如提示 mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists.
不要慌!输入以下代码:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
然后再次输入:
sudo /usr/bin/mysqld_safe
此时便成功进入了安全模式,重新进入 MySQL,无需密码。
mysql -u root
然后按如下步骤重置密码:
> use mysql;
> update user set authentication_string = PASSWORD("这里输入新密码") where User='root'; #更改密码
> update user set plugin="mysql_native_password"; # 如果没这一行可能也会报一个错误,因此需要运行这一行
> flush privileges; #更新所有操作权限
> quit;
重新用新密码进入 MySQL:
> sudo /etc/init.d/mysql stop
> sudo /etc/init.d/mysql start # 重启 mysql
> mysql -u root -p
重置完毕!