어떻게에서 내 MySQL 데이터베이스 중 하나 복원 .myd
, .myi
, .frm
파일을?
답변
MyISAM 테이블 인 경우 .FRM, .MYD 및 .MYI 파일을 데이터베이스 디렉토리 (예 :)에 플로 핑 /var/lib/mysql/dbname
하면 해당 테이블을 사용할 수있게됩니다. 원래 서버와 동일한 서버, 동일한 MySQL 버전 또는 동일한 아키텍처 일 필요는 없습니다. 또한 폴더에 대한 소유권을 바꾼다해야 할 수도 있습니다 (예 chown -R mysql:mysql /var/lib/mysql/dbname
)
권한 ( GRANT
등)은 mysql
데이터베이스의 일부입니다 . 따라서 테이블과 함께 복원되지 않습니다. GRANT
사용자를 작성하고 액세스 권한을 부여하기 위해 적절한 명령문 을 실행해야 할 수도 있습니다 ( mysql
데이터베이스 복원 은 가능하지만 MySQL 버전 및 필요한 mysql_upgrade
유틸리티 실행에주의해야 합니다).
실제로 .FRM (테이블 구조) 및 .MYD (테이블 데이터)가 필요할 수도 있지만 .MYI (인덱스)를 다시 작성하려면 테이블을 복구해야합니다.
다운 그레이드하는 경우 릴리스 정보를 확인하고 복구 테이블을 실행하는 것이 가장 좋습니다. 최신 MySQL 버전은 물론 기능을 추가합니다.
[테이블을 혼합하여 일치시키는 경우에는 분명해야하지만 해당 테이블 간의 관계의 무결성이 문제입니다. MySQL은 신경 쓰지 않지만 응용 프로그램과 사용자가 할 수 있습니다. 또한이 방법은 InnoDB 테이블에서 전혀 작동하지 않습니다. MyISAM 만 있지만 파일을 고려하면 MyISAM이 있습니다.]
답변
MYI 파일을 다시 빌드하려면 REPAIR TABLE을 올바르게 사용하십시오.
약간의 USE_FRM REPAIR 테이블;
그렇지 않으면 다른 오류가 발생할 수 있습니다.
답변
방금이 문제를 해결했습니다. Windows 7에서 MySQL 5.1 또는 5.6을 사용하고 있습니다.
- “C : \ Program Data \ MySQL \ MSQLServer5.1 \ Data”에있는 이전 파일에서 .frm 파일과 ibdata1 을 복사하십시오 .
- 현재 SQL 인스턴스에서 SQL Server 인스턴스를 중지하십시오.
- “C : \ Program Data \ MySQL \ MSQLServer5.1 \ Data”에있는 데이터 폴더로 이동하십시오.
- 복구하려는 파일 의 .frm 파일 이 포함 된 ibdata1 및 데이터베이스 폴더를 붙여 넣습니다 .
- MySQL 인스턴스를 시작하십시오.
이 복구를 위해 .MYI 및 .MYD 파일을 찾을 필요가 없습니다.
답변
한 가지 참고할 사항 :
.FRM 파일은 테이블 구조를 가지며 MySQL 버전에 따라 다릅니다.
.MYD 파일은 최소한 부 버전이 아닌 버전에만 국한되지 않습니다.
.MYI 파일은 특정 파일이지만 REPAIR TABLE
다른 답변 과 같이 생략하고 다시 생성 할 수 있습니다 .
이 답변의 요점은 테이블의 스키마 덤프가있는 경우이를 사용하여 테이블 구조를 생성 한 다음 해당 .MYD 파일을 백업으로 바꾸고 MYI 파일을 삭제하고 복구 할 수 있다는 것입니다. 모두. 이렇게하면 백업을 다른 MySQL 버전으로 복원하거나을 사용하지 않고 데이터베이스를 모두 이동할 수 있습니다 mysqldump
. 큰 데이터베이스를 이동할 때 이것이 매우 유용하다는 것을 알았습니다.
답변
단순한! 더미 데이터베이스 만들기 (예 : abc)
이 모든 .myd, .myi, .frm 파일을 mysql \ data \ abc로 복사하십시오. 여기서 mysql \ data \는 모든 데이터베이스의 .myd, .myi, .frm이 저장되는 위치입니다.
그런 다음 phpMyadmin으로 이동하여 db abc로 이동하면 데이터베이스를 찾을 수 있습니다.
답변
mysql 내부에서 .myi를 복구 할 수 있다고 생각합니다.
MySQL에서 이러한 유형의 오류 메시지가 표시되는 경우 : 데이터베이스가 쿼리 (쿼리)를 실행하지 못했습니다. 1016 : 파일을 열 수 없습니다 : ‘sometable.MYI’. (errno : 145) 오류 메시지 : 1034 : ‘sometable’테이블의 키 파일이 잘못되었습니다. 테이블이 손상되었거나 손상된 경우이를 복구하십시오.
다음과 같이 mysql 프롬프트에서 테이블을 확인하고 복구 할 수 있습니다.
check table sometable;
+------------------+-------+----------+----------------------------+
| Table | Op | Msg_type | Msg_text |
+------------------+-------+----------+----------------------------+
| yourdb.sometable | check | warning | Table is marked as crashed |
| yourdb.sometable | check | status | OK |
+------------------+-------+----------+----------------------------+
repair table sometable;
+------------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+--------+----------+----------+
| yourdb.sometable | repair | status | OK |
+------------------+--------+----------+----------+
이제 테이블이 양호해야합니다.
check table sometable;
+------------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+-------+----------+----------+
| yourdb.sometable | check | status | OK |
+------------------+-------+----------+----------+
답변
.sql
파일 .sql
에 액세스 할 필요없이 파일을 파일로 변환하는 솔루션을 찾았습니다 ( 파일을 서버 로 가져오고 데이터베이스를 복구 할 수 있음)./var
디렉토리 으므로 서버 관리자가 아니어도 할 수 있습니다.
컴퓨터에 XAMPP 또는 MAMP가 설치되어 있어야합니다.
- XAMPP를 설치 한 후 설치 디렉토리 (일반적으로
C:\XAMPP
)와 하위 디렉토리로 이동하십시오mysql\data
. 전체 경로는C:\XAMPP\mysql\data
-
안에는 다른 데이터베이스의 폴더가 표시됩니다. 복사 및이의 전체 폴더에 붙여 넣기
.myd
,.myi
그리고.frm
거기에 파일을. 해당 폴더의 경로는C:\XAMPP\mysql\data\foldername\.mydfiles
-
그런 다음
localhost/phpmyadmin
브라우저를 방문하십시오 .mysql\data
폴더에 붙여 넣은 데이터베이스를 선택하고 탐색 모음에서 내보내기를 클릭하십시오..sql
파일 로 내보내기를 선택 합니다. 그런 다음 파일을 저장할 위치를 묻는 팝업이 나타납니다.
그리고 그게 다야! 이제이 (한다) .sql
원래이었다 데이터베이스에 포함 된 파일 .myd
, .myi
및 .frm
파일을. 그런 다음 phpMyAdmin을 통해 새 데이터베이스를 생성하고 탐색 표시 줄에서 ‘가져 오기’를 누른 후 다음 단계에 따라 가져 오기하여 다른 서버로 가져올 수 있습니다.