重置 MySQL 密码 & 缺少 mysqld.sock 文件

Pau*_*ine 5 mysql sockets

我正在尝试在我自己的计算机上运行本地 mysql 服务器。我丢失了最初设置的密码。当我尝试连接到 mysql 时,出现以下错误:

ERROR 2002 (HY000): 无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

因此,我尝试了这些步骤来重置我的 MySQL 密码,但该行

mysql -u 根 mysql

返回相同的错误消息:

ERROR 2002 (HY000): 无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

运行命令时

mysqladmin -u root -p status 我收到以下消息:错误:'无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)'

检查 mysqld 是否正在运行以及套接字:'/var/run/mysqld/mysqld.sock' 是否存在!

我一直在检查,提到的文件(/var/run/mysqld/mysqld.sock)实际上并不存在。我不确定是什么原因造成的。

我在网上尝试了几个解决方案,包括这个这个这个这个,但是这些解决方案都不适合我。我想补充一点,我的机器上安装了 mysql-server。

任何帮助表示赞赏。如果以上陈述有任何混淆,请接受我的歉意。我试图尽可能多地解释正在发生的事情,但我是一个初学者,我对那里发生的事情一无所知。

Har*_*mar 3

1)使用以下命令停止 mysql 恶魔进程:

sudo /etc/init.d/mysql stop
Run Code Online (Sandbox Code Playgroud)

2) 使用此命令的 --skip-grant-tables 选项启动 mysqld 恶魔进程

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)

因为此时您没有检查用户权限,所以禁用网络是最安全的。在 Dapper 中,/usr/bin/mysqld... 不起作用。然而,mysqld --skip-grant-tables 做到了。

1)使用此命令启动mysql客户端进程

mysql -u root
Run Code Online (Sandbox Code Playgroud)

2)从mysql提示符执行此命令能够更改任何密码

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

3)然后重置/更新您的密码

SET PASSWORD FOR root@'localhost' = PASSWORD('password');
Run Code Online (Sandbox Code Playgroud)

4) 如果你有一个可以从任何地方连接的 mysql root 帐户,你还应该这样做:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Run Code Online (Sandbox Code Playgroud)

一旦收到指示查询成功的消息(受影响的一行或多行),刷新权限:

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

然后停止 mysqld 进程并以经典方式重新启动它:

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)

这是从https://help.ubuntu.com/community/MysqlPasswordReset借用的,您还可以检查另一种重置 mysql 密码的方法。

  • 谢谢,我已经尝试过这种方法,但是在 `mysql -u root` 之后,我收到错误 `ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' ( 2)`我无法解决。 (2认同)

归档时间:

查看次数:

14372 次

最近记录:

5 年,5 月 前