kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

OS

mysql db 원상 복구하기

까마기 2014. 9. 15. 23:29
728x90
반응형

 

mysql db 원상 복구하기

 

# whereis mysql

 

mysql data 위치 확인 및 해당 db 계정 및 데이터 디렉터리 확인

 

# mv -a /usr/local/mysql/data/dbname /backup

 

--> 해당 db를 백업해놓을 디렉터리에 이동 

 

# cp -a /backup/dbname.sql.gz /usr/local/mysql/data

 

dbname.sql.gz 를 mysql data 디렉터리에 복사

 

# gunzip dbname.sql.gz

 

 

# mysql -u root -p 

mysql 접속

 

>use mysql;

>show databases;

->해당 db가 없는 것을 확인

 

>select user,password,host from user;

 

>create databases dbname;

 

>quit

 

# mysql -u root -p dbname < dbname.sql

 

sql 파일을 해당 db에 밀어넣고 ​다시 mysql 접속

 

# mysql -u root -p 

 

>use mysql;

>show databases; 

>select user,password,host from user;

> grant all privileges on hanmoonsun.* to hanmoonsun@localhost identified by 'hanmoonsundb3511';

 

> flush privileges; 

 

 

 

원래는 해당 db가 서비스 중이라면 mysql 서비스를 내리고 해야 한다.

1. 전체 데이터 베이스 체크및 자동 복구
mysqlcheck -Aao --auto-repair -u root -p
2. 특정 데이터 베이스만 체크 및 자동 복구
mysqlcheck --auto-repair -u root -p [디비명]

테이블 점검 방법 

1. 테이블 이상 점검 
    #/usr/local/mysql/bin/myisamchk  /usr/local/mysql/data/365managed/zetyx_member_table.MYI
    #/usr/local/mysql/bin/myisamchk -c /usr/local/mysql/data/365managed/zetyx_member_table.MYI

2. 테이블점검시 이상만 알려주기
    #/usr/local/mysql/bin/myisamchk -s /usr/local/mysql/data/365managed/zetyx_member_table.MYI


3. 점검 상세 메세지 출력
    #/usr/local/mysql/bin/myisamchk -v /usr/local/mysql/data/365managed/zetyx_member_table.MYI


4. 상세 종합
    #/usr/local/mysql/bin/myisamchk -i /usr/local/mysql/data/365managed/zetyx_member_table.MYI


5. 특정 테이블 이상유무 가장 정밀하게 점검
    #/usr/local/mysql/bin/myisamchk -ev /usr/local/mysql/data/365managed/zetyx_member_table.MYI

손상된  테이블 복구 방법

1. 손상된  테이블파일 복구
    #/usr/local/mysql/bin/myisamchk -rv /usr/local/mysql/data/365managed/zetyx_member_table.MYI


2. 안전모드 복구(r 옵션으로 복구가 안될떄)
    #/usr/local/mysql/bin/myisamchk -o /usr/local/mysql/data/365managed/zetyx_member_table.MYI

3. 최후의 수단 복구방법
    테이블 파일이 완전히 깨지거나 완전히 망가진 상태가 아니라면 사용하지말것.
    #./myisamchk -re /usr/local/mysql/data/365managed/zetyx_member_table.MYI

출처: https://www.crowz.co.kr/72 [★까마기 www.crowz.co.kr]

반응형