이전 시스템에서 mysql 파일을 복사하면 접속시 오류가 발생하는데 어떻게 해야 하나요?

이전 시스템에서 mysql 파일을 복사하면 접속시 오류가 발생하는데 어떻게 해야 하나요?

첫째, 파일을 가지고 있었지만 이전 시스템은 사라졌습니다.

해당 폴더를 거기에 넣은 /var/lib/mysql/다음 그 안에 있는 mysql 폴더에 권한을 부여했습니다. 사용자 mysql 그룹 루트는 내 사용자에게만 액세스할 수 있습니다.

이제 localhost 사이트에 액세스하려고 하면 mysql 데이터베이스 오류가 발생합니다. 하지만 내 생각엔 모든 것이 여전히 예전과 똑같다고 생각한다. 이 작업을 수행하려면 어떻게 해야 합니까?

Cannot find or open table blabla/wp_options from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.

로그 파일에는 이와 같은 오류가 많이 표시됩니다. 지금 이 .frm 파일을 삭제해야 합니까?

답변1

.frm현학적: 예, 파일이 없으면 파일을 삭제할 필요가 없습니다 ibdata.

인용하다14.2.4.7. InnoDB 데이터 사전 작업 문제 해결"이것은 해당 테이블이 없는 InnoDB에 고아 .frm 파일이 있다는 것을 의미합니다."

따라서 .frma가 없는 파일은 InnoDB분리된 파일입니다 .frm.


그러나 내 의견 링크는 다음과 같습니다.14.2.2.4. InnoDB 데이터베이스 백업 및 복원그리고14.2.1.2. InnoDB 구성주어진 것을 결합하다프롬링크의 형식.

/var/lib/mysql/나는 당신이 내부의 파일도 복사했다고 생각했습니다. 안타깝습니다.

무엇보다도 로그 파일에는 메모리에 커밋된 커밋만 포함됩니다.보관되지 않음설명대로여기, - 따라서 모든 것은 지난번에 데이터베이스를 어떻게 닫았는지에 따라 달라집니다.


문제가 해결되어서 다행입니다 ;)

답변2

실제 데이터베이스를 복사하지 않은 것으로 나타났습니다. 폴더에 있는 모든 항목을 살펴본 결과 테이블 이름이 포함된 .frm 파일과 65비트 db.opt 파일이 포함되어 있으므로 이것이 실제 데이터베이스가 될 수 없다는 것을 알았습니다.

모두 /var/lib/mysql/ 루트 디렉터리의 ibdata1 파일 안에 있고, 데이터베이스는 앞서 생성한 데이터베이스 이름의 폴더 안에 있는 것 같아요.

따라서 아니요. .frm 파일이나 기타 항목을 삭제할 필요가 없습니다. (mysql 서버를 중지하는 동안) ibdata1 파일을 복사했는데 이제 모든 것이 잘 작동합니다.

관련 정보