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

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

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


当前回答

以我为例,我做了一些研发工作:

我能够连接到MySQL使用

root-debian#mysql -h 127.0.0.1 -u root -p

但是在mysql中-u root -p行不通。

我在my.cnf中没有找到任何绑定地址。所以我注释了参数socket=/var/lib/mysql/mysqld。袜子在我的。cnf导致我登录的问题。

重新启动服务后,一切正常:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)

其他回答

确保你有重要数据库的备份,然后尝试卸载MySQL相关的东西:

apt-get remove --purge mysql\*

然后重新安装:

apt-get install mysql-server mysql-client

这对我来说很有效,数据被保存了下来。

如果PHP MySQL显示错误,您可能需要重新安装PHP MySQL:

apt-get install php5-fpm php5-mysql

我曾经遇到过这个问题,并通过安装mysql-server解决了它,所以请确保您已经安装了mysql-server,而不是mysql-client或其他东西。

这个错误意味着文件/var/run/mysqld/mysqld.Sock不存在,如果你没有安装mysql-server,那么这个文件就不存在。在这种情况下,安装它

sudo apt-get install mysql-server

但是如果mysql-server已经安装并且正在运行,那么您需要检查配置文件。

配置文件如下:

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

在/etc/my.cnf目录下,套接字文件配置可能是/tmp/mysql。在/etc/mysql/my.cnf中,套接字文件配置可能是/var/run/mysqld/mysqld.sock。因此,删除或重命名/etc/mysql/my.cnf,让mysql使用/etc/my.cnf,那么问题就可以解决了。

sudo touch /var/lib/mysql/.force_upgrade
sudo rcmysql restart

当我有这个问题的时候

这个答案与在内存较小的机器上更新到MySQL 5.6有关

我在Debian 8 (Jessie)上从MySQL 5.5升级到5.6时遇到了同样的问题。MySQL没有启动(状态显示为active/exited),简单地让服务MySQL启动不起作用,因为我从/var/logs/ MySQL /error.log日志文件中发现:

InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
Cannot allocate memory for the buffer pool

内存不够:我只有256 MB的RAM。

在MySQL中有一个设置,performance_schema。默认情况下,它在MySQL 5.5中是关闭的。

https://dev.mysql.com/doc/refman/5.5/en/performance-schema-startup-configuration.html

但在MySQL 5.6中,默认是开启的,只需在/etc/mysql/my.cnf文件中添加以下一行并重新启动,就可以工作了。

performance_schema = off

警告:关闭此设置可能会遇到性能问题,但我猜在开发环境中这不会是问题。

此外,这里有一篇文章,可能有助于配置MySQL使用最小内存,配置MySQL使用最小内存(web存档链接,以防原来的链接在未来过期https://web.archive.org/web/20201112041608/http://www.tocker.ca/2014/03/10/configuring-mysql-to-use-minimal-memory.html)。

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

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