.myd, .myi, .frm 파일에서 MySQL 데이터베이스를 복구하는 방법
MySQL 중 를 MySQL에서 하는 .myd
,.myi
,.frm
파일? 파일?
MyISAM은 MyISAM을 사용하고 있습니다.FRM, .MYD ».디렉토리에 됩니다( MYI 파일)./var/lib/mysql/dbname
을 사용할 수 있도록 가 이 테이블을 사용할 수 있도록 합니다.동일한 데이터베이스, 동일한 서버, 동일한 MySQL 버전 또는 동일한 아키텍처일 필요는 없습니다.폴더의 소유권을 변경해야 할 수도 있습니다(예:chown -R mysql:mysql /var/lib/mysql/dbname
)
「」 「」)에 해 주세요.GRANT
은 의 입니다.mysql
데이터베이스입니다. 표와것이 가 필요할 수 .을 사용법GRANT
, 등 the Restore the Restore the users, ( ( ( ( ( ( ) mysql
및 MySQL의 .mysql_upgrade
★★★★★★★★★★★★★★★★★★」
실제로 필요한 것은 아마 입니다.FRM(테이블 구조) 및MYD(테이블 데이터)를 재구축하려면 테이블을 복구해야 합니다.MYI(인덱스)
유일한 제약사항은 다운그레이드할 경우 릴리스 노트를 확인하는 것이 가장 좋다는 것입니다(및 복구 테이블을 실행하는 것이 좋습니다).물론 새로운 MySQL 버전에는 기능이 추가됩니다.
[명백한 것은 분명하지만 테이블을 조합하면 테이블 간의 관계의 무결성이 문제가 됩니다.MySQL은 상관 없지만 애플리케이션과 사용자가 상관할 수 있습니다.또한 InnoDB 테이블에서는 이 방법이 전혀 작동하지 않습니다.MyISAM 뿐이지만, 가지고 있는 파일을 고려하면 MyISAM이 있습니다.
MYI 파일을 재구축하는 경우 수리 테이블을 올바르게 사용하는 방법은 다음과 같습니다.
수선용 테이블_FRM;
그렇지 않으면 다른 오류가 발생할 수 있습니다.
이 문제에 대한 해결책을 방금 발견했어요.Windows 7에서 MySQL 5.1 또는 5.6을 사용하고 있습니다.
- "C:"에 있는 이전 파일에서 .frm 파일과 ibdata1을 복사합니다.\Program Data\MySQL\MSQLServer5.1\Data"
- 현재 SQL 인스턴스에서 SQL 서버 인스턴스 중지
- "C:"에 있는 데이터 폴더로 이동합니다.\Program Data\MySQL\MSQLServer5.1\Data"
- 복구할 파일에서 .frm 파일이 들어 있는 데이터베이스 폴더와 ibdata1을 붙여넣습니다.
- MySQL 인스턴스를 시작합니다.
를 찾을 필요가 없습니다.MYI 및.이 복구의 MYD 파일입니다.
심플! 더미 데이터베이스 작성(abc 등)
이 모든 .myd, .myi, .frm 파일을 mysql\data\abc에 복사합니다.mysql\data\는 모든 데이터베이스의 .myd, .myi, .frm이 저장됩니다.
그런 다음 phpMyadmin으로 이동하고 dbabc로 이동하여 데이터베이스를 찾습니다.
한 가지 주의할 점은 다음과 같습니다.
.FRM 파일에는 테이블 구조가 포함되어 있으며 MySQL 버전에 고유합니다.
.MYD 파일은 버전에 고유하지 않으며, 적어도 마이너 버전은 아닙니다.
하지만 를 사용하여 할 수 .MYI 파일은 고유하지만 생략하고 재생성할 수 있습니다.REPAIR TABLE
른른른른른
할 수 구조를할 수 있다는 입니다.백업이 포함된 MYD 파일을 삭제하고 MYI 파일을 모두 복구합니다.하거나 MySQL을 사용하지 않고 를 모두 할 수 .mysqldump
대용량 데이터베이스를 이동할 때 매우 유용합니다.
을 일일 a a a a a a a a a a a a ating로 하기 위한 ..sql
할 수 ).sql
복구합니다.)에 할 가 없습니다./var
따라서 이 작업을 수행하기 위해 서버 관리자가 될 필요는 없습니다.
XAMPP 또는 MAMP를 컴퓨터에 설치해야 합니다.
- 를 인스톨 , 디렉토리은 XAMPP 「」, 「」( 「」)로 합니다.
C:\XAMPP
「」를 해 주세요mysql\data
전체 경로는 다음과 같습니다.C:\XAMPP\mysql\data
내부에는 작성한 다른 데이터베이스의 폴더가 표시됩니다.Copy & 」(에 「Copy & Paste」( 페이스트)를 합니다.
.myd
,.myi
★★★★★★★★★★★★★★★★★」.frm
파일을 거기에 넣습니다.이 폴더의 경로는 다음과 같습니다.C:\XAMPP\mysql\data\foldername\.mydfiles
방문해주세요
localhost/phpmyadmin
브라우저에 표시됩니다.합니다.mysql\data
폴더를 클릭하고 탐색 모음에서 내보내기를 클릭합니다.합니다..sql
파일 .
have! have have have have a a a a a a a a a a a a a a a a a a a a a.sql
"Database"였던 .myd
,.myi
★★★★★★★★★★★★★★★★★」.frm
새 눌러 수 그 후, 「Import를 눌러 하는 .「 」 「 」 「 」 「 」 「 」 「 」 「 」 、 「 」 「 my Admin 」
myi는 mysql 안에서 수리가 가능하다고 생각합니다.
MySQL: Database failed to execute query(쿼리) 1016: Cannot't open file: '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 |
+------------------+-------+----------+----------+
mySQL의 정확한 동일한 버전이고 해당 디렉터리에 연결된 모든 파일을 유지한 경우 데이터 폴더의 적절한 이름의 하위 디렉터리에 파일을 복사할 수 있습니다.모든 파일을 가지고 있지 않다면 분명 문제가 있을 거예요.
http://forums.devshed.com/mysql-help-4/mysql-installation-problems-197509.html
ib_* 파일의 이름을 바꾸라고 되어 있습니다.내가 해냈더니 DB가 돌아왔어.
상기의 설명은, 나에게 있어서 기능하기에는 불충분했기 때문에(아마도 조밀하거나 게으름) 장래에 도움이 되는 답을 발견하면, 이 스크립트를 작성했습니다.다른 사람에게 도움이 되었으면 좋겠다
vim fixperms.sh
#!/bin/sh
for D in `find . -type d`
do
echo $D;
chown -R mysql:mysql $D;
chmod -R 660 $D;
chown mysql:mysql $D;
chmod 700 $D;
done
echo Dont forget to restart mysql: /etc/init.d/mysqld restart;
Windows XP 가 설치되어 있고 MySQL Server 5.5 가 설치되어 있는 사용자의 경우 데이터베이스 위치는 C:\문서 및 설정\모든 사용자\어플리케이션 데이터\마이SQL\MySQL Server 5.5\data(MySql Workbench 설치 GUI 내에서 위치를 변경하지 않는 한).
언급URL : https://stackoverflow.com/questions/879176/how-to-recover-mysql-database-from-myd-myi-frm-files
'it-source' 카테고리의 다른 글
POST를 통해 같은 이름의 여러 입력을 php로 입력 (0) | 2023.01.23 |
---|---|
단일 MySQL 문에서 열을 추가하고 외부 키를 만드는 방법은 무엇입니까? (0) | 2023.01.23 |
MySQL - 하나의 INSERT 문에 몇 개의 행을 삽입할 수 있습니까? (0) | 2023.01.15 |
명령줄에서 PHP 코드 문자열 실행 (0) | 2023.01.15 |
도커 MariaDB 컨테이너의 영구 스토리지 컨테이너를 백업할 수 없습니다. (0) | 2023.01.15 |