접속

  • 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 백업을 안했는데 서버가 나가 버린경우

  1. 디스크만 따로 뽑아서 다른 PC에 연결한다

  2. /var/lib/mysql 폴더를 백업 한다

  3. 새롭게 mysql 을 설치하고 서비스를 잠시 중단한다

    sudo systemctl start mysql
  4. 새로 설치한 mysql이 생성한 /var/lib/mysql 폴더를 지운다

  5. 백업한 /var/lib/mysql 폴더를 그 자리에 위치 시킨다

  6. 해당 명령어를 차례대로 입력한다

    # 소유권을 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 {} \;
  7. 다시 mysql 서비스를 실행한다

    sudo systemctl start mysql