Окружающая среда: Solaris 10
Этот сервер MySQL работает уже 6 месяцев. Сегодня он внезапно разбился. При вводе mysql в качестве пользователя выдается ошибка MYSQL" Error 2002 (HY000): Can't Connect to Local MySQL server though socket '/tmp/mysql.sock'
. При вводе mysql от имени root он говорит mysql: not found
.
Сервер пытается открыть MySQL, он остается открытым в течение 9-10 секунд и перезапускает процесс. Ниже представлены журналы приложений.
Application-database-mysql_mysql-csk.log [ May 30 22:37:52 Enabled. ] [ May 30 22:37:58 Rereading configuration. ] [ May 30 22:37:59 Executing start method ("/opt/coolstack/lib/svc/method/svc-cskmysql start") ] /opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid [ May 30 22:37:59 Method "start" exited with status 0 ] [ May 30 22:38:13 Stopping because all processes in service exited. ] [ May 30 22:38:13 Executing stop method ("/opt/coolstack/lib/svc/method/svc-cskmysql stop") ] [ May 30 22:38:13 Method "stop" exited with status 0 ] [ May 30 22:38:13 Executing start method ("/opt/coolstack/lib/svc/method/svc-cskmysql start") ] /opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid [ May 30 22:38:13 Method "start" exited with status 0 ] [ May 30 22:38:25 Stopping because all processes in service exited. ] [ May 30 22:38:25 Executing stop method ("/opt/coolstack/lib/svc/method/svc-cskmysql stop") ] [ May 30 22:38:25 Method "stop" exited with status 0 ]
Я надеюсь, что кто-то уже сталкивался с этим раньше и знает, как это исправить.
Для всех, кто сталкивается с подобной проблемой.
Индексы для всех таблиц innoDB были повреждены. Единственное, что мне в итоге удалось сделать, - это выполнить принудительное восстановление.
http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
Когда я опубликовал это, я уже пробовал force-recovery = 4, и это было безуспешно, поэтому я решил, что это вообще не сработает.
Хотя в конце концов я смог заставить работать force-recovery = 2 и позволил мне получить доступ к данным.
После резервного копирования я восстановил индексы, и с этого момента сервер был в порядке.
Моей первой мыслью было бы проверить сами журналы MySQL, вероятно, в /dbpool1/data/$hostname.err
Возможно, это поможет пролить свет на то, почему MySQL не запускается. В качестве альтернативы также может помочь выполнение команды запуска вручную:
/opt/coolstack/mysql/bin/mysqld_safe --user=mysql --datadir=/dbpool1/data --pid-file=/dbpool1/data/database.soliaonline.com.pid