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

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

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


当前回答

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

当我有这个问题的时候

其他回答

我尝试了以下步骤:

以超级用户登录或使用sudo 使用gedit打开/etc/mysql/my.cnf 找到bind-address,并将其值更改为数据库服务器主机的IP地址。对我来说,是localhost或127.0.0.1 保存并关闭文件。 回到终端,执行sudo service mysql start

这对我很有效。

在我的例子中,问题是我所有数据库的页面损坏(检查mysql错误日志)。

我用强制恢复InnoDB解决了这个问题。诀窍是编辑/etc/mysql/my.cnf并添加

innodb_force_recovery = 4

略低于

[mysqld]

然后重新启动mysql。 在检查一切工作正常后,再把线移回来。

我也有同样的问题。我找到了这个。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

这是因为在启动MySQL客户端之前没有运行mysqld守护进程。文件/var/lib/mysql/mysql.在运行MySQL的第一个实例时,将自动创建sock。

修复:

首先启动MySQL守护进程,然后输入MySQL:

/etc/init.d/mysqld start
mysql

修改MySQL Root密码

默认情况下,MySQL数据库的root密码为空。从安全角度考虑,将MySQL根密码更改为新密码是一个好主意。

mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;

完成后,通过登录进行检查:

mysql -u root -p
Enter Password: <your new password>

在我的情况下,我有文件损坏在我的mysql数据文件夹

mv /var/lib/mysql /var/lib/mysql_old

因此,当我有备份时,我将目录移动到“_old”,并再次启动docker。它用干净的数据创建了一个新文件夹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