실제 파일에서 MySQL 데이터베이스 복원
실제 데이터베이스 파일에서 MySQL 데이터베이스를 복원 할 수 있습니까? 다음 파일 형식의 디렉토리가 있습니다.
client.frm
client.MYD
client.MYI
약 20 개의 테이블이 더 있습니다.
나는 일반적으로 mysqldump 또는 유사한 도구를 사용하여 1 SQL 파일의 모든 것을 가져옵니다. 그래서 이러한 유형의 파일을 처리하는 방법은 무엇입니까?
MySQL MyISAM 테이블은 다음 3 가지 파일의 조합입니다.
- FRM 파일은 테이블 정의입니다.
- MYD 파일은 실제 데이터가 저장되는 위치입니다.
- MYI 파일은 테이블에서 작성된 인덱스가 저장되는 위치입니다.
데이터베이스 폴더에 복사하여 복원 할 수 있어야합니다 (Linux의 경우 기본 위치는 /var/lib/mysql/
)
서버가 실행 중이 아닌 동안 수행해야합니다.
@Vicent의 답변에서 이미 아래와 같이 MySQL 데이터베이스를 복원했습니다.
1 단계. MySQL 서버 종료
단계 2. 데이터베이스 폴더에 데이터베이스를 복사하십시오 (Linux에서 기본 위치는 / var / lib / mysql입니다). mysql 모드에서 데이터베이스 이름과 데이터베이스 이름을 동일하게 유지하십시오.
sudo cp -rf /mnt/ubuntu_426/var/lib/mysql/database1 /var/lib/mysql/
3 단계 : 폴더 변경 및 자체 모드 변경 :
sudo chown -R mysql:mysql /var/lib/mysql/database1
sudo chmod -R 660 /var/lib/mysql/database1
sudo chown mysql:mysql /var/lib/mysql/database1
sudo chmod 700 /var/lib/mysql/database1
4 단계 : 데이터베이스 폴더에 ibdata1 복사
sudo cp /mnt/ubuntu_426/var/lib/mysql/ibdata1 /var/lib/mysql/
sudo chown mysql:mysql /var/lib/mysql/ibdata1
5 단계 : ib_logfile0 및 ib_logfile1 파일을 데이터베이스 폴더에 복사하십시오.
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile0 /var/lib/mysql/
sudo cp /mnt/ubuntu_426/var/lib/mysql/ib_logfile1 /var/lib/mysql/
자신을 변경하고 해당 파일의 루트를 변경하십시오.
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile0
sudo chown -R mysql:mysql /var/lib/mysql/ib_logfile1
또는
sudo chown -R mysql:mysql /var/lib/mysql
6 단계 (선택 사항) : 내 사이트에 파일을 특정 위치에 저장하도록 구성한 다음 해당 위치로 정확하게 복사합니다.
7 단계 : Mysql 서버를 시작하십시오. 모든 것이 돌아와서 즐깁니다.
그게 다야.
자세한 정보는 https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/ 에서 확인하십시오.
폴더를 복원하는 경우 파일을 mysql : mysql에 넣는 것을 잊지 마십시오. chown -R mysql:mysql /var/lib/mysql-data
그렇지 않으면 데이터베이스를 삭제하거나 새 열을 추가하려고 할 때 오류가 발생합니다.
MySQL을 다시 시작
service mysql restart
나는 같은 문제가 있지만 위의 지침에 따라 데이터베이스를 성공적으로 복구하지 못했습니다.
우분투 OS에서 mysql 데이터베이스 폴더 만 복구했습니다. 내 문제는 읽을 수없는 mysql 데이터 폴더로 데이터베이스를 복구하는 방법입니다. 이제 개발 환경을 위해 win7 OS로 다시 전환합니다.
* 참고 win7에서 실행중인 기존 데이터베이스 서버가 있으며 복구 된 파일에서 검색 할 데이터베이스 파일이 거의 필요하지 않습니다. Ubuntu OS에서 데이터베이스 파일을 성공적으로 복구하려면 이전 데이터베이스 서버의 모든 것을 복구하려면 win7 OS의 Ubuntu OS에서 새로 설치된 mysql 데이터베이스 서버와 동일한 버전을 새로 설치해야합니다.
복구 된 파일에서 다른 새 mysql 데이터베이스 서버를 동일한 버전으로 만듭니다.
MySQL 서버를 중지
복구 된 폴더를 복사하고 (C : \ ProgramData \ MySQL \ MySQL Server 5.5 \ data)에 붙여 넣으십시오. mysql 데이터베이스가 저장됩니다.
linux mysql installed 폴더에있는 ibdata1 파일을 복사하여 (C : \ ProgramData \ MySQL \ MySQL Server 5.5 \ data)에 붙여 넣습니다. 기존의 바로 위에 있거나 교체하기 전에 백업하십시오.
mysql 서버를 시작하고 데이터베이스 파일을 성공적으로 복구했는지 확인하십시오.
현재 사용중인 mysql 서버에서 복구 된 데이터베이스를 사용하려면 복구 된 데이터베이스를 내보내고 기존 mysql 서버로 가져 오십시오.
내 문제에 대한 해결책을 찾지 못했기 때문에 이것이 도움이되기를 바랍니다.
MySql 5.1 (Win7) 사용 DB (InnoDbs)를 재생성하기 위해 다음 dirs (my.ini params)의 모든 내용을 교체했습니다.
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
innodb_data_home_dir="C:/MySQL Datafiles/"
After that I started MySql Service and all works fine.
Yes it is! Just add them to your database-folder ( depending on the OS ) and run a command such as "MySQL Fix Permissions". This re-stored the database. See too it that the correct permissions are set on the files aswell.
I once copied these files to the database storage folder for a mysql database which was working, started the db and waited for it to "repair" the files, then extracted them with mysqldump.
In my case, simply removing the tc.log in /var/lib/mysql was enough to start mariadb/mysql again.
참고URL : https://stackoverflow.com/questions/484750/restoring-mysql-database-from-physical-files
'development' 카테고리의 다른 글
파이썬에서 병렬 프로그래밍을 수행하는 방법 (0) | 2020.07.08 |
---|---|
xsi : schemaLocation의 사용법은 무엇입니까? (0) | 2020.07.08 |
생성자 인수가 너무 많습니까? (0) | 2020.07.08 |
인수를 기반으로 재스민 스파이를 수정하는 방법은 무엇입니까? (0) | 2020.07.08 |
바이너리 릴리스와 소스 릴리스의 차이점은 무엇입니까? (0) | 2020.07.08 |