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

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

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


当前回答

在我的情况下,我的问题是,我试图从我的linux终端访问,而不是从我的docker容器与mysql。

其他回答

为了防止出现这个问题,您必须从命令行优雅地关闭服务器,而不是直接下电服务器。

shutdown -h now

这将在关闭机器之前停止正在运行的服务。

基于Centos,当你遇到这个问题时,一个额外的方法是移动mysql.sock:

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

service mysqld start

重新启动服务将创建一个名为mqsql.sock的新条目

MySQL服务器进程没有创建套接字,或者客户端在错误的地方寻找套接字。

我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否运行在另一个主机上?如果是这样,在终端的MySQL客户端中添加-h <hostname>标志。

如果MySQL确实在运行,并且在本地运行,请检查my.cnf文件。应该有这样的线条

socket = /var/run/mysqld/mysqld.sock

看看是否与你在文章中提到的套接字位置相匹配。

根据经验,我想说最可能的情况是你的MySQL服务器根本没有运行,或者与你在终端上运行MySQL客户端不在同一台主机上运行。

如果您的Linux机器上安装了XAMPP,请尝试将my.cnf文件从/opt/lampp/etc/my.cnf复制到/etc/my.cnf

然后,再次运行mysql -u root…现在您应该有了正确的套接字,并且能够运行MySQL客户端。

我的服务器上的简单解决方案:在使用MySQL数据库迁移到新的Debian 7服务器后,第二个本地IP地址127.0.1.1在我的hosts文件中丢失了。添加这个解决了警告:

echo -e "\n127.0.1.1       $(hostname)" >> /etc/hosts

首先,尝试重新启动它

停止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或更高版本 非常好!

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