2012-03-04 1 views
0

"Mysql :: Error : 테이블 'table_name'이 (가) 충돌로 표시되어 수리해야합니다"라는 메시지가 여러 번 반복되었습니다 (Mysql :: Error : 테이블 'table_name'이 (가) 오류로 표시되어 복구해야 함

). 내 서버의 명령 줄에서이 작업을 실행하려면 : mysqlcheck의 --repair --all-데이터베이스 ..

을하지만 난 원인을 모르는!

은 내가이 문제를 해결하는 방법을 알고

참고 : 레일즈에서 루비로 개발하고 mysql 5.1.49, 테이블 유형 MyISAM, 테이블 크기 : 50Mo과 500Mo 사이에서 사용합니다. 또한이 표에는 다중 삽입이 있습니다.

나는 매일 밤 테이블을 고치는 스크립트를 만들려고 생각했지만, 이것은 나쁜 생각이라고 생각합니다.

내 질문 : mysql에 적용 할 구성이 있습니까? 아니면 코드에 문제가 있다고 생각합니까? 사실이 오류가 발생할 때마다이 테이블을 복구하라는 명령을 실행해야합니다.

감사

답변

2

응용 프로그램 코드는 않는 무엇이든, MySQL의 테이블을 충돌 할 수 없게한다. 이 오류는 mysql 자체의 오류를 가리 킵니다. 디스크 공간이 부족할 가능성이 가장 높지만 다른 원인으로는 하드웨어 오류, mysql과 동시에 mysql 파일을 조작하려는 다른 프로세스 또는 mysql의 버그 일 수 있습니다.

다음에 문제가 발생하면 오류 테이블에서 CHECK TABLE의 결과와 mysql 오류 로그를 확인할 수 있습니다.