접속
- mysql -u [계정이름] -p -h [DB 주소]
DB 백업 & 복원
백업
# 시스템 DB 를 포함한 모든 DB 백업
mysqldump -u<이름> -p<비번> --all-databases --add-drop-database > <저장파일>.sql
#특정 DB만 백업
mysqldump -u<이름> -p<비번> --databases <DB1> <DB2>... --add-drop-database > <저장파일>.sql
복원
백업된 전체 DB를 복원하려는 경우
# --all-databases 옵션으로 전체 백업한경우 시스템 DB 때문에 --force 옵션을 추가해야한다
# 시스템 테이블 때문에 오류걸릴수 있는데 무시해도 됨
mysql -u <이름> -p<비번> --force < <백업파일>.sql
백업 DB 중에 특정 DB 만 백업 하려는 경우
- 이때는 특이하게 복원하려는 DB가 mysql에 존재해야 한다 (Unknown database 애러뜸)
- 따라서 복원하려는 DB가 없으면 생성해주자
CREATE DATABASE <복원하려는DB>;
# 복원하지 말아야 할 DB까지 복원 시키는거 같은 오류가 뜰수 있는데
# 상관 하지 않아도 됨
mysql -u <이름> -p<비번> --force --one-database <복원하려는DB> < <백업파일>.sql
DB 백업을 안했는데 서버가 나가 버린경우
-
디스크만 따로 뽑아서 다른 PC에 연결한다
- 리눅스는
ext4
파일시스템이라 윈도우에서는 따로 프로그램 깔아야함
Linux File Systems for Windows
- 리눅스는
-
/var/lib/mysql
폴더를 백업 한다 -
새롭게 mysql 을 설치하고 서비스를 잠시 중단한다
sudo systemctl start mysql
-
새로 설치한 mysql이 생성한
/var/lib/mysql
폴더를 지운다 -
백업한
/var/lib/mysql
폴더를 그 자리에 위치 시킨다 -
해당 명령어를 차례대로 입력한다
# 소유권을 mysql:mysql로 변경 sudo chown -R mysql:mysql /var/lib/mysql # 디렉토리 권한 설정 sudo find /var/lib/mysql -type d -exec chmod 750 {} \; # 파일 권한 설정 sudo find /var/lib/mysql -type f -exec chmod 660 {} \;
-
다시 mysql 서비스를 실행한다
sudo systemctl start mysql