我在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,卸载它或重新安装它。
当前回答
安装mysql-server解决了这个问题
sudo apt-get install mysql-server
其他回答
在我的例子中,问题是我所有数据库的页面损坏(检查mysql错误日志)。
我用强制恢复InnoDB解决了这个问题。诀窍是编辑/etc/mysql/my.cnf并添加
innodb_force_recovery = 4
略低于
[mysqld]
然后重新启动mysql。 在检查一切工作正常后,再把线移回来。
您缺少创建/var/run/mysqld目录的权限。所以请创建和 给予许可如下。
Mkdir -p /var/run/mysqld Chown mysql:mysql /var/run/mysqld
根据我的经验,你需要先检查服务器是否正在运行,然后再尝试配置MySQL。最后一个解决方案是重新安装MySQL。
Ubuntu 14.04 (Trusty Tahr)也是如此。
如果您已经安装了XAMPP,安装MySQL -server并不是解决方案,因为您将访问另一个MySQL!
您必须使用正确的套接字才能访问。通常是这样的:
/opt/lampp/var/mysql/mysql.sock
相反,把它改为:
/var/run/mysqld/mysqld.sock
MySQL服务器进程没有创建套接字,或者客户端在错误的地方寻找套接字。
我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否运行在另一个主机上?如果是这样,在终端的MySQL客户端中添加-h <hostname>标志。
如果MySQL确实在运行,并且在本地运行,请检查my.cnf文件。应该有这样的线条
socket = /var/run/mysqld/mysqld.sock
看看是否与你在文章中提到的套接字位置相匹配。
根据经验,我想说最可能的情况是你的MySQL服务器根本没有运行,或者与你在终端上运行MySQL客户端不在同一台主机上运行。