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

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

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


当前回答

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

Pkill MySQL

Mysqld_safe -u root

其他回答

尝试重新启动服务器

sudo /usr/local/mysql/support-files/mysql.server start

如果出现任何错误,请按照以下步骤进行操作

mysqld

您将看到下面的日志。注意MySQL目录中突出显示的部分

mysqld: Can't change dir to '/usr/local/mysql-5.7.14-osx10.11-x86_64/data/' (Errcode: 13 - Permission denied) 2016-10-04T14:09:19.392581Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-10-04T14:09:19.392847Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2016-10-04T14:09:19.392921Z 0 [Note] mysqld (mysqld 5.7.14) starting as process 1402 ... 2016-10-04T14:09:19.397569Z 0 [Warning] Can't create test file /usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test 2016-10-04T14:09:19.397597Z 0 [Warning] Can't create test file /usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test 2016-10-04T14:09:19.397712Z 0 [ERROR] failed to set datadir to /usr/local/mysql-5.7.14-osx10.11-x86_64/data/ 2016-10-04T14:09:19.397776Z 0 [ERROR] Aborting 2016-10-04T14:09:19.397795Z 0 [Note] Binlog end 2016-10-04T14:09:19.397925Z 0 [Note] mysqld: Shutdown complete

sudo chown -R _mysql:_mysql /usr/local/mysql-5.7.14-osx10.11-x86_64

注意前面日志中的MySQL文件夹路径/usr/local,在我的例子中,它是MySQL -5.7.14-osx10.11-x86_64,您必须根据您在计算机上获得的日志更新它,以提供对MySQL目录的读访问

sudo /usr/local/mysql/support-files / mysql。服务器启动

启动MySQL 成功!

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

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

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

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

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

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

您可以首先检查服务是否正在运行,使用:

ps ax | grep mysql

我得到了这样的回答:

6104 pts/0    S      0:00 /bin/sh /usr/bin/mysqld_safe
6431 pts/0    Sl     0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/m

没有响应意味着服务没有运行,请执行以下操作:

service  mysql start

我通过杀死mysql进程来解决这个问题:

ps -ef | grep mysql
kill [the id]

然后我再次启动服务器:

sudo /etc/init.d/mysql restart

但是start也同样有效:

sudo /etc/init.d/mysql start

然后我以管理员身份登录,就搞定了。

首先,尝试重新启动它

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

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