Окружающая среда: 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 секунд и перезапускает процесс. Ниже приведены логи приложения.
Приложение-база-данных-mysql_mysql-csk.log [ 30 мая 22:37:52 Включено. ] [ 30 мая 22:37:58 Перечитываю конфигурацию. ] [ 30 мая 22:37:59 Выполнение метода запуска ("/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 [ 30 мая 22:37:59 Метод "start" завершен со статусом 0 ] [ 30 мая 22:38:13 Остановка, так как все процессы в обслуживании завершены. ] [ 30 мая 22:38:13 Выполнение метода остановки ("/opt/coolstack/lib/svc/method/svc-cskmysql stop") ] [ 30 мая 22:38:13 Метод "stop" завершен со статусом 0 ] [ 30 мая 22:38:13 Выполнение метода запуска ("/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 [ 30 мая 22:38:13 Метод "start" завершен со статусом 0 ] [ 30 мая 22:38:25 Остановка, так как все процессы в обслуживании завершены. ] [ 30 мая 22:38:25 Выполнение метода остановки ("/opt/coolstack/lib/svc/method/svc-cskmysql stop") ] [ 30 мая 22:38:25 Метод «stop» завершен со статусом 0 ]
Надеюсь, кто-то уже сталкивался с этим и знает, как это исправить.
решение1
Для тех, кто столкнулся с подобной проблемой.
Индексы всех таблиц innoDB были повреждены. Единственное, что я смог сделать в конце концов, это запустить принудительное восстановление.
http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
Когда я это опубликовал, я уже пробовал force-recovery = 4, но это не сработало, поэтому я решил, что это вообще не сработает.
Хотя в конце концов мне удалось заставить force-recovery =2 работать и получить доступ к данным.
Сделав резервную копию всех данных, я восстановил индексы, и с этого момента сервер работал нормально.
решение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