Перестал работать блог, при этом в логе появились ошибки:
[Thu Mar 27 18:26:11 2014] [warn] [client 85.91.123.15] mod_fcgid: stderr: … Table ‘./rtfm_db1/db1_options’ is marked as crashed and should be repaired
Проверяем тип используемых таблиц:
mysql> SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'rtfm_db1'; +------------------------+--------+ | TABLE_NAME | ENGINE | +------------------------+--------+ | db1_cntctfrm_field | InnoDB | | db1_commentmeta | MyISAM | | db1_comments | MyISAM | | db1_links | MyISAM | | db1_madsape | MyISAM | | db1_options | MyISAM | | db1_pollsa | MyISAM | | db1_pollsip | MyISAM | | db1_pollsq | MyISAM | | db1_postmeta | MyISAM | | db1_posts | MyISAM | | db1_term_relationships | MyISAM | | db1_term_taxonomy | MyISAM | | db1_terms | MyISAM | | db1_userfile_category | MyISAM | | db1_userfile_cats | MyISAM | | db1_userfile_icons | MyISAM | | db1_usermeta | MyISAM | | db1_users | MyISAM | | db1_wp_rp_tags | InnoDB | +------------------------+--------+ 20 rows in set (0.02 sec)
Находим файлы с расширением .MYI (MySQL Index MyISAM File)
, которые используются сервером MySQL для хранения индексов для таблицы MyISAM:
# ls -l /var/db/mysql/rtfm_db1/ | grep "MYI" -rw-rw---- 1 mysql mysql 22528 Mar 27 18:26 db1_commentmeta.MYI -rw-rw---- 1 mysql mysql 21504 Mar 27 18:26 db1_comments.MYI -rw-rw---- 1 mysql mysql 3072 Mar 27 18:26 db1_links.MYI -rw-rw---- 1 mysql mysql 2048 Jan 30 21:07 db1_madsape.MYI -rw-rw---- 1 mysql mysql 29696 Mar 27 19:03 db1_options.MYI -rw-rw---- 1 mysql mysql 2048 Mar 27 12:04 db1_pollsa.MYI -rw-rw---- 1 mysql mysql 46080 Mar 27 18:38 db1_pollsip.MYI -rw-rw---- 1 mysql mysql 2048 Mar 27 12:04 db1_pollsq.MYI -rw-rw---- 1 mysql mysql 221184 Mar 27 19:03 db1_postmeta.MYI -rw-rw---- 1 mysql mysql 329728 Mar 27 19:03 db1_posts.MYI -rw-rw---- 1 mysql mysql 92160 Mar 27 19:03 db1_term_relationships.MYI -rw-rw---- 1 mysql mysql 15360 Mar 27 18:26 db1_term_taxonomy.MYI -rw-rw---- 1 mysql mysql 28672 Mar 27 18:26 db1_terms.MYI -rw-rw---- 1 mysql mysql 3072 Jan 30 22:35 db1_userfile_category.MYI -rw-rw---- 1 mysql mysql 1024 Jan 30 22:35 db1_userfile_cats.MYI -rw-rw---- 1 mysql mysql 3072 Jan 30 22:35 db1_userfile_icons.MYI -rw-rw---- 1 mysql mysql 10240 Mar 27 19:02 db1_usermeta.MYI -rw-rw---- 1 mysql mysql 4096 Mar 27 18:26 db1_users.MYI
Останавливаем сервер:
# service mysql-server stop Stopping mysql. Waiting for PIDS: 23207.
Запускаем утилиту myisamchk
с опцией -c
для вывода только “проблемных” файлов:
# myisamchk -s /var/db/mysql/rtfm_db1/*.MYI Warning: Using unique option prefix read_buffer instead of read_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. Warning: Using unique option prefix write_buffer instead of write_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. myisamchk: warning: 1 client is using or hasn't closed the table properly MyISAM-table '/var/db/mysql/rtfm_db1/db1_options.MYI' is usable but should be fixed myisamchk: warning: 6 clients are using or haven't closed the table properly MyISAM-table '/var/db/mysql/rtfm_db1/db1_pollsip.MYI' is usable but should be fixed myisamchk: warning: 1 client is using or hasn't closed the table properly MyISAM-table '/var/db/mysql/rtfm_db1/db1_postmeta.MYI' is usable but should be fixed
И запускаем восстановление:
# myisamchk -r /var/db/mysql/rtfm_db1/db1_options.MYI Warning: Using unique option prefix read_buffer instead of read_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. Warning: Using unique option prefix write_buffer instead of write_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. - recovering (with sort) MyISAM-table '/var/db/mysql/rtfm_db1/db1_options.MYI' Data records: 571 - Fixing index 1 - Fixing index 2
По очереди для всех “проблемных” файлов.
После выполнения – првоеряем ещё раз, что бы убедиться что ошибок нет.
Теперь можно запустить сервер:
# service mysql-server start Starting mysql.
# service mysql-server status mysql is running as pid 23582.
Готово.
P.S. И не забываем делать бекапы, само собой.
Ссылки по теме
http://shebangme.blogspot.com
http://www.mysql.ru