当我尝试登录 apache 时,出现错误#2002
。当我尝试通过终端登录 MySQL 时,它询问我的密码,我得到:
$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我尝试删除 mysql 并重新安装,但什么都没发生(我甚至无法删除它)我尝试重新启动 apache,但仍然没有反应。我尝试重新启动我的电脑,当然仍然不起作用。
在终端我得到这个:
$ sudo start mysql
start: Job failed to start
$ mysql -ubob -hlocalhost -P3306 -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
$ sudo service mysql stop
stop: Unknown instance:
这是我的my.cnf
文件:
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
我试图查找我的/var/run/mysqld/
或中是否有一个文件/var/tmp/
,但没有找到文件 mysqld.sock……我查看了一下/var/log/mysql/
,但里面什么都没有。
你能帮助我吗?我在 Google 上搜索了好几个小时,但一点帮助都没有……
更多信息:
的结果cat /var/log/syslog | grep mysql
这里
/var/run/mysqld/
存在,但其中没有任何内容
$ ls -la/var/run/mysqld/
total 0
drwxr-xr-x 2 mysql root 40 Nov 5 22:31 .
drwxr-xr-x 25 root root 860 Nov 5 22:32 ..
我的 ubuntu 是 12.04 LTS。你能告诉我如何备份我的数据库吗?如果你没有更好的东西,那么重新安装至少我可以备份我的数据库
我尝试使用以下命令进行备份:
mysqldump -u root -p –所有数据库> all_backup.sql
输入密码:
mysqldump:尝试连接时出现错误:2002:无法通过套接字 >'/var/run/mysqld/mysqld.sock' (2) 连接到本地 MySQL 服务器
答案1
我猜你没有运行 MySQL。尝试使用以下命令启动它
$ sudo service mysql start
如果仍然出现错误,请检查系统日志以获取一些信息
$ grep mysql /var/log/syslog
如果你无法弄清楚问题,你也可以使用 pastebinit 通过日志更新你的答案
$ grep mysql /var/log/syslog | pastebinit
另外,检查/var/run/mysqld/
目录是否存在并且属于 mysql 用户。
$ ls -la /var/run/mysqld
total 4
drwxr-xr-x 2 mysql root 80 Nov 5 21:24 .
如果没有任何方法可以解决问题,也许最好的办法就是完全删除 MySQL 并重新安装。
警告:这将删除您的所有 MySQL 数据。因此,如果您的 MySQL 数据库中有重要数据,您应该先进行备份!
sudo apt-get purge mysql-server mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get clean
sudo apt-get install mysql-server
编辑
我找到了这个漏洞这似乎和你的类似。有一个解决方法西蒙·希尔这可能对您有用:创建一个文件/etc/apparmor.d/tunables/proc
(如果它尚不存在),其中包含以下内容:
# ------------------------------------------------------------------
#
# Copyright (C) 2006 Novell/SUSE
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
# License published by the Free Software Foundation.
#
# ------------------------------------------------------------------
# @{PROC} is the location where procfs is mounted.
@{PROC}=/proc/