복구 - mysql 인스턴스 확인




.frm 파일에서 mysql 데이터베이스를 복원하십시오. (6)

같은 이름으로 새 데이터베이스를 만듭니다. .frm .ibd 파일을 xampp / mysql / data / [databasename] /

당신은 ibdata 파일뿐만 아니라 내부에서 찾을 수 있어야합니다

xampp / mysql / data / 이전 ibdata1 파일을 복사하여 붙여 넣기하고 기존 ibdata 파일로 바꿉니다.

[ 주의 : 새 ibdata 파일에서 새로 생성 된 데이터베이스의 내용이 손실 될 수 있습니다. ]

나는 모든 테이블을 버려서 백업을 받았다. 그러나 나중에 그것은 테이블의 .frm 파일 만 저장한다는 것을 이해합니다. 테이블의 .MYD 및 .MYI 파일을 표시하지 않습니다. 그래서 나는 나와 함께 데이터베이스의 .frm 파일 만 가지고 있으며 또한 mydatabase는 innodb이다. 그러면 데이터베이스의 데이터로 데이터베이스를 가져올 수 있습니까?


나는 .frm 파일에서 테이블 생성 SQL 코드를 생성하는 훌륭한 도구 인 mysqlfrm 을 사용했다. 테이블이 나열되었지만이 불쾌한 테이블을 찾지 못했습니다. 따라서이 도구를 사용하여 테이블을 다시 생성했습니다. 우분투에서는 다음과 같이 설치해야합니다 :

sudo apt install mysql-utilities

그때,

mysqlfrm --diagnostic mysql/db_name/ > db_name.sql

새 데이터베이스를 만든 다음,

mysql -u username -p < db_name.sql

그러나 이렇게하면 표는 제공되지만 데이터는 제공되지 않습니다. 내 경우에는 이것으로 충분했다.


나는이 질문에 답을했다. https://dba.stackexchange.com/a/42932/24122

나는 최근에이 같은 문제를 경험했다. 나는 Mac에 있었기 때문에 MAMP를 사용하여 데이터베이스를 MySQL 덤프에서 내보낼 수있는 지점으로 복원했습니다.

여기에서 전체 블로그 게시물을 읽을 수 있습니다. http://www.quora.com/Jordan-Ryan/Web-Dev/How-to-Recover-innoDB-MySQL-files-using-MAMP-on-a-Mac

당신은해야합니다 :

-ibdata1

-ib_logfile0

-ib_logfile1

mysql_database 폴더의 .FRM 파일들

- 파괴하려는 MAMP / MAMP Pro의 새로운 설치 (필요할 경우)

  1. SSH를 웹 서버 (dev, production, no difference)에 넣고 mysql 폴더로 이동합니다 (Linux의 경우 Plesk 설치를 위해 / var / lib / mysql에있었습니다)
  2. mysql 폴더 압축하기
  3. MyISAM이든 innoDB이든 상관없이 모든 mySQL 데이터베이스를 포함해야하는 mysql 폴더의 아카이브를 다운로드한다 (이 파일을 scp로 만들거나 필요하다면 이것을 다운로드 가능한 디렉토리로 옮길 수있다)
  4. MAMP 설치 (Mac, Apache, MySQL, PHP)
  5. / Applications / MAMP / db / mysql /
  6. 백업 / 응용 프로그램 / MAMP / db / mysql을 zip 아카이브 (경우에 따라)
  7. 프로덕션 서버에서 mysql 폴더의 아카이브에 포함 된 모든 폴더 및 파일을 복사하십시오 (필자의 경우 Plesk 환경). 덮어 쓰지 않는 경우 제외 :

    - / 응용 프로그램 / MAMP / db / mysql / mysql /

    - / 응용 프로그램 / MAMP / db / mysql / mysql_upgrade_info

    - / 응용 프로그램 / MAMP / db / mysql / performance_schema

  8. 이제는 phpMyAdmin에서 데이터베이스에 액세스 할 수 있어야합니다.

하지만 아직 완료되지 않았습니다. 이제는 프로덕션 환경으로 파일을 복원하기 위해 mysqldump를 수행해야하며, 대형 데이터베이스의 경우 phpmyadmin 인터페이스가 시간 초과됩니다. 다음 단계를 따르십시오.

http://nickhardeman.com/308/export-import-large-database-using-mamp-with-terminal/

참조 용으로 아래에 복사 됨. 기본 MAMP 설치에서 암호는 "root"입니다.

터미널을 사용하여 MAMP 용 mysqldump를 실행하는 방법

엠프에서 데이터베이스 내보내기 [1]

1 단계 : 새 터미널 창 열기

2 단계 : 터미널에 다음 줄을 입력하여 MAMP 설치를 탐색합니다. cd / applications / MAMP / library / bin Enter 키를 누릅니다.

3 단계 : dump 명령을 작성하십시오. ./mysqldump -u [USERNAME] -p [DATA_BASENAME]> [PATH_TO_FILE] Enter 키를 누르십시오.

예:

./mysqldump -u root -p wp_database > /Applications/MAMP/htdocs/symposium10_wp/wp_db_onezero.sql

빠른 팁 : 신속하게 폴더로 이동하려면 폴더를 터미널 창으로 끌면 폴더의 위치가 기록됩니다. 누군가가 나에게 이것을 보여준 좋은 날이었습니다.

4 단계 : Enter 키를 누른 후에이 텍스트 줄이 나타나야합니다. Enter password : 암호를 입력하십시오. 문자가 나타나지 않지만 입력 된 것을 기억하십시오. Enter 키를 누르십시오.

5 단계 : 파일을 저장 한 위치를 확인하십시오. SUCCESS 다음에는 데이터베이스를 가져올 수 있습니다.

이제 당신은 당신이 프로덕션 환경에서 가져올 수있는 mysql 데이터베이스를 내보냈습니다.


누군가에게 유용 할 수 있습니다.

재해 발생 후 frm 파일 만 복구 할 수 있었지만 적어도 다음을 수행하여 FRM 파일에서 테이블 구조를 얻을 수있었습니다.

1 - 새로운 mysql 데이터베이스에 적어도 하나의 컬럼과 이름이 같은 더미 테이블을 frm 파일로 생성한다.

2-stop mysql 서비스

3 복사하여 기존의 frm 파일을 새로 만든 테이블의 frm 파일에 붙여 넣기하면 덮어 쓰기 할 것인지 묻는 메시지가 나타납니다. 모두 다 바꿔.

4 - 시작 mysql 서비스, 그리고 당신의 테이블 구조를 가지고 ...

문안 인사. 임의의


시작하기 전에 WAMP 서비스를 중지하거나 서비스를 시작하라는 메시지가 표시되면 서비스를 다시 시작해야합니다.

이전 서버 인스턴스에서 MySQL 데이터 폴더로 이동하려면 기본적으로 C:\wamp\bin\mysql\mysql5.1.53\data\ 와 유사해야합니다 C:\wamp\bin\mysql\mysql5.1.53\data\ 여기서 mysql5.1.53 은 이전에 설치된 MySQL 데이터베이스의 버전 번호입니다.

이 폴더 안에는 몇 개의 파일과 폴더가 나타납니다. 폴더는 실제 MySQL 데이터베이스이며 우리가 필요로하는 .frm 파일을 포함합니다. 폴더 이름을 데이터베이스 이름으로 인식해야합니다. 이 폴더와 모든 내용은 MySQL 데이터 폴더에 직접 복사 할 수 있습니다. mysql, performance_schema, test 기본 데이터베이스를 무시할 수 있습니다.

지금 서버를 시작했다면 데이터베이스가 선택되었음을 알 수 있지만 데이터베이스는 복사 된 테이블을 전혀 포함하지 않습니다. 데이터베이스의 내용을 가져 ibdata1 데이터 폴더에 다시 ibdata1 파일이 ibdata1 .이 파일은 테이블의 데이터 파일이며 데이터 폴더에 직접 복사해야합니다. 새 파일에 이미 파일이 있어야합니다. 데이터 폴더를 "ibdata1"이라 부르므로 이전 MySQL 데이터 폴더에서 ibdata1.bak 을 복사하기 전에 ibdata1.bak 로 이름을 바꿀 수 있습니다.

일단 이것이 끝나면 모든 WAMP 서비스를 다시 시작하십시오. PhpMyAdmin을 사용하여 데이터베이스가 성공적으로 복원되었는지 확인할 수 있습니다.


네, 가능합니다. .frm 파일을 databse 폴더로 복사하는 것으로 ib_logfilesibdata 파일을 데이터 폴더에 복사해야합니다. .frm 파일을 복사하고 그 파일을 복사하고 서버를 다시 시작하면 데이터베이스가 복원됩니다.







mysqldump