이 테이블을 갑자기 수리하고 있었는데 서버가 멈추고 돌아 왔을 때 모든 테이블이 정상이지만이 테이블은 ‘사용 중’을 표시하고 수리하려고 할 때 진행되지 않습니다.
오류 144-테이블 ‘./extas_d47727/xzclf_ads’가 충돌 한 것으로 표시되고 마지막 (자동?) 복구가 실패했습니다.
수리하려면 어떻게해야합니까?
답변
MySQL 프로세스가 실행중인 경우 중지하십시오. 데비안 :
sudo service mysql stop
데이터 폴더로 이동하십시오. 데비안 :
cd /var/lib/mysql/$DATABASE_NAME
다음을 실행 해보십시오.
myisamchk -r $TABLE_NAME
그래도 작동하지 않으면 다음을 시도해보세요.
myisamchk -r -v -f $TABLE_NAME
MySQL 서버를 다시 시작할 수 있습니다. 데비안 :
sudo service mysql start
답변
다음 쿼리를 실행 해보십시오.
repair table <table_name>;
나는 같은 문제가 있었고 그것은 나에게 문제를 해결했습니다.
답변
/ var / lib / mysql로 이동하는 동안 권한 거부가 발생하면 다음 솔루션을 사용하십시오.
$ cd /var/lib/
$ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>
답변
나는 그것이 작동하도록 수리 문에 USE_FRM을 추가해야했습니다.
REPAIR TABLE <table_name> USE_FRM;
답변
나는 myisamchk: error: myisam_sort_buffer_size is too small
오류로 얻었다 .
해결책
myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G
답변
테이블 복구 후 파일로 이동하여 data_dir
제거하십시오 .Your_table.TMP
<Your_table>
답변
이것은 100 % 해결책입니다. 나는 그것을 직접 시도했다.
myisamchk -r -v -f –sort_buffer_size = 128M –key_buffer_size = 128M / var / lib / mysql / databasename / tabloname