ОШИБКА 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,

  1. Можете ли вы проверить разрешения (соответствуют ли они вашим .cnf файл для чего они должны быть)?
  2. Посмотрите ibdata1как разрешения на это?

Если у вас есть резервные копии, было бы неплохо использовать их.

Проверьте /var/log/daemon.log на наличие ошибок при запуске в mysqld. У вас есть проблема, которая не позволяет запустить MySQL, более чем вероятно.

grep mysql /var/log/daemon.log должен дать вам список соответствующих сообщений об ошибках. Отпишитесь с журналом жалоб.

Другие вопросы по тегам