IT

MySQL 테이블이 충돌로 표시되고 마지막 (자동?) 복구 실패

lottoking 2020. 7. 18. 09:41
반응형

MySQL 테이블이 충돌로 표시되고 마지막 (자동?) 복구 실패


나는이 테이블을 갑자기 수리하고 서버가 중단 표시 모든 테이블을 다시 반환 할 때 괜찮지만이 테이블은 '사용 중'을 표시하고 복구 할 때 진행되었습니다.

오류 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


기존의 시도의 옵션을 시도했는데, 주로 시나리오에서 작동하지 않는 올바른 표시입니다. 그러나 phpMyAdmin을 사용하여 작동했습니다. 데이터베이스를 선택한 다음 테이블을 선택하고 맨 아래 드롭 다운 메뉴에서 "Repair table"을 선택합니다.

  • 서버 유형 : MySQL
  • 서버 버전 : 5.7.23-MySQL 커뮤니티 서버 (GPL)
  • phpMyAdmin : 버전 정보 : 4.7.7

참고 URL : https://stackoverflow.com/questions/8843776/mysql-table-is-marked-as-crashed-and-last-automatic-repair-failed

반응형