我在Ubuntu 12.04 LTS (Precise穿山甲)上安装了LAMP,然后在phpMyAdmin上设置根密码。我忘记密码了,现在无法登录。当我试图通过终端更改密码时,我得到:
错误2002 (HY000):无法通过套接字连接到本地MySQL服务器 ' / var /运行/ mysqld / mysqld。袜子”(2)
我该如何解决这个问题?我无法打开LAMP,卸载它或重新安装它。
我在Ubuntu 12.04 LTS (Precise穿山甲)上安装了LAMP,然后在phpMyAdmin上设置根密码。我忘记密码了,现在无法登录。当我试图通过终端更改密码时,我得到:
错误2002 (HY000):无法通过套接字连接到本地MySQL服务器 ' / var /运行/ mysqld / mysqld。袜子”(2)
我该如何解决这个问题?我无法打开LAMP,卸载它或重新安装它。
当前回答
对我来说,更新解决了这个问题:
在Ubuntu上:
sudo apt-get update
sudo apt-get upgrade
CentOS:
sudo yum update
其他回答
我只是在不得不重新启动生产服务器后遇到了同样的问题。我正在DigitalOcean液滴上运行Debian 8.1 (Jessie)。
这是我解决问题的方法:
检查文件/var/run/mysqld/mysqld.袜子的存在。如果没有,手动创建它,输入touch /var/run/mysqld/mysqld.袜子(这是我必须做的)。 所以MySQL进程可以使用这个文件。通过输入chown mysql /var/run/mysqld/mysqld.sock更改该文件的所有权。 执行完“2”后,输入service MySQL restart或/etc/init.重新启动MySQL服务d / mysql重启。
经过上述步骤后,我的问题得到了解决。我很少遇到这种问题,可能有更好的方法,所以如果需要,请务必提供建设性的反馈:)。
检查my.conf (/etc/mysql/my.cnf),看看bind-address是否设置为127.0.0.1。
如果不是,这可能会导致此问题。
MySQL服务器进程没有创建套接字,或者客户端在错误的地方寻找套接字。
我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否运行在另一个主机上?如果是这样,在终端的MySQL客户端中添加-h <hostname>标志。
如果MySQL确实在运行,并且在本地运行,请检查my.cnf文件。应该有这样的线条
socket = /var/run/mysqld/mysqld.sock
看看是否与你在文章中提到的套接字位置相匹配。
根据经验,我想说最可能的情况是你的MySQL服务器根本没有运行,或者与你在终端上运行MySQL客户端不在同一台主机上运行。
我也有这个问题,但这些答案都帮不了我。问题是不同的,但错误是由OP描述的。
我检查了MySQL的日志在/var/log/mysql,我看到了这个:
150309 5:03:19 [ERROR] /usr/sbin/mysqld: unknown variable 'lower_case_tables_names=1'
我打开/etc/mysql/my.cnf文件并注释掉#这一行。在此之后,我能够连接到数据库。
说实话,我不知道问题出在哪里。由于维护,linode服务器计划重新启动,这个错误突然出现。
我不能解释,但在kubuntu 12.04.2之后
Sudo apt-get autoremove linux-headers-3.2.0-37 linux-headers-3.2.0-37-generic
它开始起作用了