我在Ubuntu 12.04 LTS (Precise穿山甲)上安装了LAMP,然后在phpMyAdmin上设置根密码。我忘记密码了,现在无法登录。当我试图通过终端更改密码时,我得到:

错误2002 (HY000):无法通过套接字连接到本地MySQL服务器 ' / var /运行/ mysqld / mysqld。袜子”(2)

我该如何解决这个问题?我无法打开LAMP,卸载它或重新安装它。


当前回答

这个答案很可能会被淹没在这里,但也许有人会偶然发现它。

在我的例子中,SELinux阻止用户/应用程序连接到MySQL (MariaDB)服务器套接字。在RHEL上,如果启用了SELinux,请检查/var/log/audit/audit.log。

其他回答

首先,尝试重新启动它

停止mysql服务

启动mysql服务

如果以上还不能解决问题,那就走吧……

完全卸载MySQL

sudo apt-get remove --purge mysql\*

重新安装它

sudo apt install mysql-server mysql-client

测试它是否运行

sudo mysql

安装php驱动程序

sudo apt install php7.4 php7.4-fpm php7.4-mysql php7.4-cgi php7.4-cli php7.4-common

你可以用php7替换php7.4。X或php8.0.12或更高版本 非常好!

❗️小心,如果没有保存,您将丢失数据。如果可能的话,请备份您的数据。

我不得不说:

sudo /etc/init.d/mysqld start

我也有同样的问题。我找到了这个。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

这是因为在启动MySQL客户端之前没有运行mysqld守护进程。文件/var/lib/mysql/mysql.在运行MySQL的第一个实例时,将自动创建sock。

修复:

首先启动MySQL守护进程,然后输入MySQL:

/etc/init.d/mysqld start
mysql

修改MySQL Root密码

默认情况下,MySQL数据库的root密码为空。从安全角度考虑,将MySQL根密码更改为新密码是一个好主意。

mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;

完成后,通过登录进行检查:

mysql -u root -p
Enter Password: <your new password>

我在mariadb的termux中遇到了这个问题,它解决了我的问题是以下两行命令-

Pkill MySQL

Mysqld_safe -u root

这个答案很可能会被淹没在这里,但也许有人会偶然发现它。

在我的例子中,SELinux阻止用户/应用程序连接到MySQL (MariaDB)服务器套接字。在RHEL上,如果启用了SELinux,请检查/var/log/audit/audit.log。