无法重置 MySQL root 密码,尝试了一切

Ilo*_*nux 9 mysql permissions password reset

好吧,让我们首先澄清一下,我已经阅读了 Ask Ubuntu 关于这个问题的所有问题,并且我已经按照官方文档中的所有步骤进行了操作:

help.ubuntu.com

开发者.mysql.com

我使用的是 Ubuntu 16.04.1 LTS

因此,在有人提出我可能已经尝试过的任何建议之前,我将展示我所做的:

root@localhost:/# sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
Run Code Online (Sandbox Code Playgroud)

MySQL 正确停止。

root@localhost:/# sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 3316
root@localhost:/#
Run Code Online (Sandbox Code Playgroud)

在这里我不知道这是否有效,所以我还是按照步骤操作。

root@localhost:/# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
root@localhost:/#
Run Code Online (Sandbox Code Playgroud)

似乎它不起作用,因为服务没有启动。由于我无法继续下一步,我尝试了另一种方法(清除)。

使用后:

sudo apt-get --purge remove
sudo apt-get install
Run Code Online (Sandbox Code Playgroud)

我尝试下一步:

root@localhost:/# mysqladmin -u root password MyNewPassword
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
root@localhost:/#
Run Code Online (Sandbox Code Playgroud)

由于这也不起作用,我尝试了 mysql web 上提到的其他方法:

所以我按照那里的指示杀死了 mysql 进程,然后我使用

root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
[1] 5267
root@localhost:/# 2017-02-01T12:47:49.250083Z mysqld_safe Logging to syslog.
2017-02-01T12:47:49.252427Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.254765Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.257045Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

[1]+  Salida 1                mysqld_safe --init-file=/home/me/mysql-init
root@localhost:/#
Run Code Online (Sandbox Code Playgroud)

现在是我无法选择的时候,所以我还尝试了 Ask Ubuntu 上提到的另一种方法:

root@localhost:/# sudo dpkg-reconfigure mysql-server-5.7
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.17, use --force if you still need to run mysql_upgrade
root@localhost:/#
Run Code Online (Sandbox Code Playgroud)

现在我真的别无选择,所以欢迎提出任何建议。

小智 16

我遇到了同样的问题,我通过执行以下行来解决它:

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)

在执行此行之前:

root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
Run Code Online (Sandbox Code Playgroud)

对我来说,这些步骤效果更好。

我认为有一种更简洁的方法可以做到这一点,但对我来说,这是一种快速有效的解决方法。