ОШИБКА 2002 (HY000): Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2) - Ubuntu 10.04
У моего VPS произошел аппаратный сбой, и я не работал в течение последних 24 часов. Теперь, когда он восстановлен, MySQL отказывается работать. Пожалуйста, имейте в виду, что мой VPS с этими точными конфигурациями работал без ошибок в течение последних 2 месяцев, я не изменил никаких настроек кода / базы данных после аппаратного сбоя.
В командной строке простой ввод "sudo mysql" возвращает
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Я не могу войти через PhpMyAdmin, я получаю 2 ошибки:
#2002 Cannot log in to the MySQL server
Connection for controluser as defined in your configuration failed.
Мое веб-приложение (Codeigniter) возвращает следующую ошибку
A Database Error Occurred
Unable to connect to your database server using the provided settings.
Filename: core/Loader.php
Line Number: 346
Я использую типичный стек LAMP на Ubuntu 10.04. У меня на жестком диске более чем достаточно свободного места (осталось более 20 гигабайт), так что нехватка места не является проблемой.
В /var/log/mysql.err ничего нет, это пустой файл. Я искал высоко и низко в Google, но сейчас, похоже, в полной растерянности.
РЕДАКТИРОВАТЬ:
Бег mysqld
дал мне
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
120630 18:41:10 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120630 18:41:10 InnoDB: Initializing buffer pool, size = 8.0M
120630 18:41:10 InnoDB: Completed initialization of buffer pool
120630 18:41:10 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
сначала работает mysqld
Я ничего не получаю, просто возвращает меня в подсказку.
РЕДАКТИРОВАТЬ 2: Бег strace -e trace=file mysqld
возвращает:
120630 19:17:12 [Note] Plugin 'FEDERATED' is disabled.
open("./mysql/plugin.frm", O_RDONLY) = -1 EACCES (Permission denied)
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
120630 19:17:12 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
open("/tmp/ibzhYSAn", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibzhYSAn") = 0
open("/tmp/ibRf9302", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibRf9302") = 0
open("/tmp/ibN6AjrI", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibN6AjrI") = 0
120630 19:17:12 InnoDB: Initializing buffer pool, size = 8.0M
120630 19:17:12 InnoDB: Completed initialization of buffer pool
open("/tmp/ibGh8aSn", O_RDWR|O_CREAT|O_EXCL, 0600) = 1
unlink("/tmp/ibGh8aSn") = 0
open("./ibdata1", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
open("./ibdata1", O_RDWR) = -1 EACCES (Permission denied)
120630 19:17:12 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
2 ответа
Если файл журнала пуст, попробуйте запустить mysqld
вручную, буквально просто запустив mysqld
в терминале.
Он должен подобрать ваш файл конфигурации автоматически (например, /etc/my.cnf
или же /etc/mysql/my.cnf
) и беги с ним.
После этого у вас должны появиться ошибки, чтобы вы могли их исправить. Если вы также включите их в свой первоначальный вопрос, мы поможем вам в дальнейшем. Проблема может быть в хосте: недостаточно памяти или даже на физических дисках недостаточно места, даже если вы еще не достигли выделенного места.
Кроме того, мои 2 цента: выскочка - дерьмо, когда вещи терпят неудачу. Когда у меня были проблемы с MySQL, я уже получил эти "уже запущенные" сообщения, хотя не было ни одного mysql[d]
- так что игнорируйте это сейчас.
Можете ли вы проверить свой каталог данных? Похоже, сбой повредил его, и вы потеряли несколько файлов. Это нормально /var/lib/mysql
,
- Можете ли вы проверить разрешения (соответствуют ли они вашим
.cnf
файл для чего они должны быть)? - Посмотрите
ibdata1
как разрешения на это?
Если у вас есть резервные копии, было бы неплохо использовать их.
Проверьте /var/log/daemon.log на наличие ошибок при запуске в mysqld. У вас есть проблема, которая не позволяет запустить MySQL, более чем вероятно.
grep mysql /var/log/daemon.log
должен дать вам список соответствующих сообщений об ошибках. Отпишитесь с журналом жалоб.