Это частая ошибка, но все ответы не решают мою проблему:
Когда я запускаю mysql, у меня есть:
ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
Поэтому, прочитав несколько ответов, я меняю его в my.cnf на /var/lib/mysql/mysql.sock, а также /tmp/mysql.sock, но у меня каждый раз возникает одна и та же проблема.
В отчаянии я удаляю mysql.sock в / var / run / mysqld, но он не создается, когда я mysqld start
или service mysql start
(после остановки каждого).
Я использую Ubuntu 10.04 с сервером LAMP.
Спасибо.
Проверьте права доступа к этим каталогам или то, что файл использовался.
Вот сценарий разрешения. Предположим, вы устанавливаете MySQL и играете как root, вам удалось запустить базу данных и случайно заставить ее записать в каталог / tmp именованный сокет с правами root. Вы убиваете процесс насильственным образом, и очистки не происходит.
Затем, позже, вы как обычный пользователь пытаетесь запустить MySQL, который может захотеть использовать специального пользователя mysql, который дистрибутив поместил в вашу систему. Поскольку названный сокет существует, он не работает. Поскольку у него нет разрешения на удаление рутинного мусора, это не работает.
Затем вы перезагружаетесь, что может стереть все / tmp перед запуском системы. Теперь там ничего нет, сервер MySQL подходит, никаких конфликтов, и все волшебным образом работает.
Я не говорю, что именно это произошло, но большинство моих проблем, когда что-то подобное происходило, оказывалось, что в какой-то каталог не было разрешения на запись по пути или файл уже был там и не мог быть удален смертным аккаунтом.
Однако рад слышать, что вы исправили это.
Проблема решена: я перезапускаю свой сервер, и он работает нормально :) (wtf?).
Соответствующие команды:
/etc/init.d/mysqld restart
/etc/init.d/mysqld stop
/etc/init.d/mysqld start