Я только что обновил свой сервер MySQL на Debian. Однако теперь, когда я запускаю сервер и пытаюсь подключиться к нему, я получаю сообщение об ошибке:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Как я могу это исправить?
Я знаю, что этому вопросу пять месяцев, но поскольку я столкнулся с одной и той же проблемой при трех разных обновлениях, я решил, что все равно опубликую свое решение.
В моем случае это, похоже, связано с ошибкой в сценариях обновления Debian (поэтому проблема может возникнуть и в Ubuntu). Каким-то образом после завершения процесса обновления некоторые из двоичных файлов журнала оказываются неверными. Это не позволяет серверу получить доступ для записи в свои собственные журналы, поэтому он не запускается.
В Debian (по крайней мере, на наших серверах) все эти файлы находятся в /var/lib/mysql
. Все в нем должно принадлежать пользователю mysql и группе mysql. Однако некоторые файлы mysql-bin.*
после обновления принадлежали пользователю root. Смена владельца файлов журнала обратно на mysql позволила серверу правильно запуститься:
# chown mysql:mysql /var/lib/mysql/mysql-bin.*
# /etc/init.d/mysql start
Надеюсь, это кому-то сэкономит время.
Попробуйте следующее
mkdir /var/run/mysql
chown mysql:mysql /var/run/mysql
Затем запустите mysql ...
MySQL, скорее всего, не запустился. Попробуйте бежать ps aux | grep mysqld
чтобы узнать, есть ли идентификатор процесса для демона mysql.
Чтобы развернуть комментарий Шейна, проверьте журнал MySQL, чтобы узнать, почему он не запускается. Местоположение по умолчанию: /var/log/mysql/error.log
Сначала запустите сервер mysql
затем запустите эту команду
ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock