Я только что восстановил свои таблицы InnoDB из своей резервной копии (скопировал ibdata1, ib_logfile1, ib_logfile0)
Однако, когда я запускаю mysql сейчас и пытаюсь получить доступ к моему сайту с помощью таблиц InnoDB, * я получаю эти ошибки
Got error -1 from storage engine
MySQL server has gone away
и в моем / var / log / syslog у меня много сообщений вроде
Oct 19 00:21:31 vm645 mysqld: 111019 0:21:31 InnoDB: Error: page 113644 log sequence number 12 1381339343
Oct 19 00:21:31 vm645 mysqld: InnoDB: is in the future! Current system log sequence number 12 1375387790.
Oct 19 00:21:31 vm645 mysqld: InnoDB: Your database may be corrupt or you may have copied the InnoDB
Oct 19 00:21:31 vm645 mysqld: InnoDB: tablespace but not the InnoDB log files. See
Oct 19 00:21:31 vm645 mysqld: InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html
Oct 19 00:21:31 vm645 mysqld: InnoDB: for more information.
и в конце я вижу
Oct 19 00:21:31 vm645 mysqld: InnoDB: Apply batch completed
Oct 19 00:21:31 vm645 mysqld: 111019 0:21:31 InnoDB: Started; log sequence number 12 1375387790
Oct 19 00:21:31 vm645 mysqld: InnoDB: !!! innodb_force_recovery is set to 4 !!!
Oct 19 00:21:31 vm645 mysqld: 111019 0:21:31 [Note] Event Scheduler: Loaded 0 events
Oct 19 00:21:31 vm645 mysqld: 111019 0:21:31 [Note] /usr/sbin/mysqld: ready for connections.
Oct 19 00:21:31 vm645 mysqld: Version: '5.1.49-3-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Debian)
Хорошо, я бы сказал, что он готов к подключению. Однако я получаю те же ошибки, что и в начале этого вопроса. Похоже, он работает, но каждый раз, когда я пытаюсь выполнить запрос к таблице InnoDB, он просто на секунду упал.
Мысли?
Иногда, когда я перезапускаю mysql, он показывает мне в консоли
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
......
и мне нужно начать заново
Почему-то сейчас бросает только
Unknown table engine 'InnoDB'
Как делал бэкап? Копирование каталога mysql - очень плохая идея и не сработает. Используйте mysqldump или innobackupex.
Для этой проблемы, вероятно, она решит вашу проблему, если вы переместите свой ib_logfile [0 | 1] куда-нибудь и запустите сервер mysql. После этого я бы начал проверять, не повреждены ли мои данные в базе данных.
У меня есть резервные копии всех баз (mysqldump -p db_name > db_name.sql
), полностью переустановите mysql и импортируйте мои базы данных обратно (mysql -p db_name < db_name.sql
). Теперь это работает.
Боковое примечание: никогда не удаляйте /var/lib/mysql/ibdata1
.