can’t find file ‘./mysql/plugin.frm’ when start MySQL

이미 사용중 이라는 상태로 MYSQL 복구도 되지 않고 아무것도 할 수 없는 상태입니다.

 

MYSQL 파일에 문제가 있는것같아 기존 백업해놓은 파일을 그대로 복사하여 복사붙여넣었습니다.

cp -ia /backup/mysqlData /var/lib/mysql/mysqlData

 

그랬더니 아래처럼 context가 달라진 상태라 복사가 되더군요.

chown mysql.mycql *.* -R 

chmod 660 -R

권한 지정을 하더라도 아래처럼 user_home 상태입니다.

 

이렇게 되면 can’t find file 항목을 띄우면서 데이터베이스에 접근을 할 수 없게됩니다.

 

chcon -R -u system_u -t mysqld_db_t *.*

 

파일 속성까지 chcon 명령어로 변경하게되면 이때부터 파일접근이 가능해집니다.

하지만 또 문제가 발생하였습니다.

바로 MyISAM 형식으로 되어진 데이터베이스라보니 repair 테이블로도 망가진 테이블이 복구가 되지 않더군요.

결국 myisamchk 명령어로 최종 복구를 하였습니다.

 

 myisamchk -r -v -f $tableName

 

 

이렇게 대부분 테이블은 복구를 하였습니다.

하지만 15기가짜리 용량이 조금 있는 테이블은  아래의 에러문을 띄우며 에러가 나더군요.

또 다른 옵션을 추가하여 진행중입니다.

 

 

하나씩 살아나고 있는 테이블이 눈에 보입니다.

 

모든 작업이 마무리 되었다면 최종적으로 ll -Z 명령어를 이용하여 파일 context를 확인합니다.

정상적이다 싶을때 database를 재부팅합니다.

 

service mariadb restart

 

결국 모든 테이블을 복구하였고 정상적으로 서비스를 운영하고 있습니다.

에러 난다고 바로 작업하지마시고

처음에 백업 파일로 저장해놓고 진행하시기 바랍니다.

 

살아나게 해주셔서 감사합니다.