
Раньше у меня была проблема с файлами .htacess, но я ее исправил, но в процессе я подумал, что было бы неплохо переустановить Apache2. Это исправило все проблемы веб-сервера, но когда я попытался использовать MySQL, он выдал мне эту ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Пожалуйста, помогите :O. Я согласен переделать все базы данных, но я не могу заставить работать MySQL, так что я, по сути, ничего не могу сделать со своим сервером, пока это не будет исправлено.
Заранее спасибо :)
решение1
Когда у меня возникает такая проблема, я делаю три вещи:
Проверьте, запущен ли процесс mysql. A
ps -e
должно сработать. Для меня не сработало сделать aservice mysql stop
. Мне пришлось вручнуюkillall mysql
.Проверил, чтобы убедиться, что my.cnf правильно указывает на место, где должен быть файл сокета. Иногда бывает так, что в конфигурации у вас есть /var/run..., но затем в файле конфигурации он говорит что-то другое. То же самое касается места, где должен быть файл my.conf. По умолчанию вы видите его в /etc/mysql/my.cnf, но в других случаях он может быть в /etc/my.cnf (и папки /etc/mysql там не должно быть, чтобы не путать с двумя источниками конфигурации mysql)
Наконец, убедитесь, что каталог, в котором находится файл сокета, имеет правильные права доступа.
В большинстве случаев достаточно 1. Это случается, по крайней мере у меня, когда я делаю какую-то настройку и по ошибке перезагружаю mysql с плохой конфигурацией.
решение2
Ошибка (2002) Невозможно подключиться к ... обычно означает, что в системе не запущен сервер MySQL. Попробуйте перезапустить
~$ sudo service mysql restart
mysql start/running, process 3912
или остановить его и снова запустить
:~$ sudo service mysql stop
mysql stop/waiting
~$ sudo service mysql start
mysql start/running, process 3994
Вам также следует проверить, что используемый вами порт TCP/IP не заблокирован брандмауэром или службой блокировки портов.подробнее здесь.
Проверьте, запущен ли сервер на этом хосте, выполнив команду sudo telnet some_host 3306
и нажав клавишу Enter несколько раз. (3306 — номер порта MySQL по умолчанию. Измените значение, если ваш сервер прослушивает другой порт.) Если сервер MySQL запущен и прослушивает порт,вы должны получить ответ, включающий номер версии сервера. Если вы получили ошибку типа telnet: Unable to connect to remote host: Connection refused
, тона указанном порту не запущен ни один сервер.
мой например (на испанском):
~$ sudo netstat -a | grep mysql
tcp 0 0 localhost:mysql *:* ESCUCHAR
unix 2 [ ACC ] FLUJO ESCUCHANDO 18740 /var/run/mysqld/mysqd.sock
МОЙ РАБОТАЕТ: НО ДАВАЙТЕ ПОСМОТРИМ, ПОДКЛЮЧИВШИСЬ К МОЕМУ ЛОКАЛЬНОМУ ХОСТУ ЧЕРЕЗ TELNET. =D
~$ sudo telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
E
5.1.61-0ubuntu0.11.10.1"]+Ya]-gQO{<X)_&<:NXConnection closed by foreign host.
marcelo@acer:~$
Взгляни на это:http://ubuntuforums.org/showthread.php?t=804021