Назад | Перейти на главную страницу

mysql выдаёт множество ошибок «таблица, отмеченная как сбойная»

У меня есть сервер mysql (версия: 5.5.3-m3-log Source distribution), и он продолжает показывать много

110214  3:01:48 [ERROR] /usr/local/mysql/libexec/mysqld: Table './mydb/tablename' is marked as crashed and should be repaired
110214  3:01:48 [Warning] Checking table:   './mydb/tablename'

мне любопытно в чем могут быть возможные проблемы и как это исправить. Вот полный список конфигураций mysql:

connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 2G 
max_length_for_sort_data = 2G
join_buffer_size = 256M
thread_cache_size = 300
#thread_concurrency = 8
query_cache_size = 512M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
long_query_time = 3
log-slave-updates = 1
log-bin = /data/mysql/3306/binlog/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_si    ze = 1G
relay-log-index = /data/mysql/3306/relaylog/relaylog
relay-log-info-file = /data/mysql/3306/relaylog/relaylog
relay-log = /data/mysql/3306/relaylog/relaylog
expire_logs_days = 30
key_buffer_size = 1G 
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 2G 
myisam_max_sort_file_size = 5G
myisam_repair_threads = 1
max_binlog_size = 1G
interactive_timeout = 64 
wait_timeout = 64
skip-name-resolve
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

Коробка работает под управлением centos-5.5. Спасибо за вашу помощь.

Для части «исправления» вы также можете поместить «myisam-recovery-options» (то же самое, что «myisam-recovery» до 5.5.3) в свой my.cnf, таким образом MySQL попытается восстановить таблицы MyISAM на лету - Существуют различные варианты, см. Документацию MySQL

Хотя поврежденных данных очень мало. Такова природа зверя, с которым мы работаем.

Просто запустите mysqlcheck mydb tablenam -r

Это должно помочь.

Была ли ваша машина жестко перезагружена или что-то в этом роде.

Если вы получаете такую ​​ошибку настолько часто, насколько подсказывает ваш вопрос, вам следует смотреть не на сам MySQL. MySQL не склонен к повторению множества подобных ошибок без посторонней помощи. Я предлагаю вам выполнить серьезную диагностику как вашего жесткого диска (ов), так и вашей оперативной памяти, прежде чем идти дальше.