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

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

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


当前回答

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

apt-get remove --purge mysql\*

然后重新安装:

apt-get install mysql-server mysql-client

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

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

apt-get install php5-fpm php5-mysql

其他回答

在Ubuntu 18:10 Linode 1GB Ram中,我遇到了这个错误。在检查了/var/log/mysql/error.log之后,我发现了这个:

[注]InnoDB: innodb_empty_free_list_algorithm由于缓冲池大小较小,修改为legacy。为了使用回退,请将缓冲池至少增加到20MB。

我把我的linode升级到2GB,用sudo mysql重新启动mariadb。接下来运行mysql_secure_admin,但是没有为user-as ususl设置根密码,直到更改根用户使用mysql_native_password插件。 不确定,但似乎袜子是创建的,但由于我的VPS内存不足,服务器关闭了。

mysqld stop
mysql.server start

一个建议:总是问MySQL问题是什么。在我的例子中,减少/var/log/mysql/error.log,看到这个:

2015-07-28 12:01:48 23224 [ERROR] /usr/sbin/mysqld: unknown variable 'log_slow_queries=/var/log/mysql/mysql-slow.log'
2015-07-28 12:01:48 23224 [ERROR] Aborting

它在抱怨,因为我在my.cnf中未注释此选项,但在注释此选项后,它启动时没有任何问题。

安装mysql-server解决了这个问题

sudo apt-get install mysql-server

您正在本地运行,这意味着您的客户端与服务器运行在同一台机器上。

确保你的Unix用户可以访问/读取/var/run/mysqld .sock:

ls -als /var
ls -als /var/run
ls -als /var/run/mysqld
ls -als /var/run/mysqld/mysqld.sock

如果没有,请与系统管理员或数据库管理员联系,以提供对这些目录的足够的读/执行访问,或将套接字文件移到其他位置。