programing

mysqldump 명령줄 유틸리티를 사용하여 mysql 데이터베이스를 완전히 백업하는 방법

copysource 2022. 12. 10. 14:17
반응형

mysqldump 명령줄 유틸리티를 사용하여 mysql 데이터베이스를 완전히 백업하는 방법

mysqldump를 사용하여 mysql 데이터베이스의 완전한 백업을 작성하려면 어떻게 해야 합니까?백업을 작성할 때 지정된 데이터베이스의 테이블만 백업됩니다.절차와 기능은 그렇지 않습니다.

사용하고 있는 백업명령어는 다음과 같습니다.
(OS는 Windows Vista 입니다).

mysqldump -u username -p db1 > backup.sql

연결을 중단하지 않고 모든 데이터베이스, 프로시저, 루틴 및 이벤트를 전체 백업하려는 경우:

mysqldump -u [username] -p -A -R -E --triggers --single-transaction > full_backup.sql
  1. -A모든 데이터베이스에 대해 (사용할 수도 있음)--all-databases)
  2. -R모든 루틴(저장된 프로시저 및 트리거)
  3. -E모든 이벤트에 대하여
  4. --single-transaction테이블을 잠그지 않고, 즉 연결을 중단하지 않고(R/W).

지정된 데이터베이스만 백업하는 경우:

mysqldump -u [username] -p [database_name] [other_database_name] -R -e --triggers --single-transaction > database_backup.sql

데이터베이스의 특정 테이블만 백업하는 경우:

mysqldump -u [username] -p [database_name] [table_name] > table_backup.sql

데이터베이스 구조만 백업하려면--no-data이전 명령으로 이동합니다.

mysqldump -u [username] –p[password] –-no-data [database_name] > dump_file.sql

mysqldump에는 더 많은 옵션이 있습니다.이러한 옵션은 모두 매뉴얼에 기재되어 있거나 를 실행하여 설명하고 있습니다.man mysqldump커맨드 라인에 표시됩니다.

당신의 버전에 따라 조금 다릅니다.5.0.13 이전 버전의 mysqldump에서는 이것이 불가능합니다.

mysqldump man 페이지(v 5.1.30)에서

 --routines, -R

      Dump stored routines (functions and procedures) from the dumped
      databases. Use of this option requires the SELECT privilege for the
      mysql.proc table. The output generated by using --routines contains
      CREATE PROCEDURE and CREATE FUNCTION statements to re-create the
      routines. However, these statements do not include attributes such
      as the routine creation and modification timestamps. This means that
      when the routines are reloaded, they will be created with the
      timestamps equal to the reload time.
      ...

      This option was added in MySQL 5.0.13. Before that, stored routines
      are not dumped. Routine DEFINER values are not dumped until MySQL
      5.0.20. This means that before 5.0.20, when routines are reloaded,
      they will be created with the definer set to the reloading user. If
      you require routines to be re-created with their original definer,
      dump and load the contents of the mysql.proc table directly as
      described earlier.

다음 명령을 사용합니다.

mysqldump <other mysqldump options> --routines > outputfile.sql

mysql 테이블과 데이터가 아닌 저장된 프로시저와 트리거만 백업하려면 다음과 같은 작업을 수행해야 합니다.

mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql

다른 DB/서버로 Import해야 하는 경우 다음과 같은 작업을 수행해야 합니다.

mysql <database> < outputfile.sql

--routines 플래그와 더불어 백업 사용자에게 저장 프로시저를 읽을 수 있는 권한을 부여해야 합니다.

GRANT SELECT ON `mysql`.`proc` TO <backup user>@<backup host>;

백업 사용자에 대한 최소 GRANT 권한 집합은 다음과 같습니다.

GRANT USAGE ON *.* TO ...
GRANT SELECT, LOCK TABLES ON <target_db>.* TO ...
GRANT SELECT ON `mysql`.`proc` TO ...

MySQL 5.5.40을 사용하고 있습니다.이 버전에는 다음과 같은 옵션이 있습니다.--all-databases

mysqldump -u<username> -p<password> --all-databases --events > /tmp/all_databases__`date +%d_%b_%Y_%H_%M_%S`.sql

이 명령은 MySQL 서버에 있는 모든 데이터베이스의 전체 백업을 현재 날짜로 명명된 파일로 만듭니다.

스토어드 프로시저를 백업하려면 '-R'을 사용합니다.또한 데이터베이스를 수정하는 동안 일관된 덤프를 만들려면--single-transaction(innodb만 백업하는 경우) 또는--lock-all-tables(myisam 테이블도 필요한 경우)

MySQL 5.7에서는 CentOS7을 사용하고 있습니다.

덤프 복용용.

명령어:

mysqldump -u user_name -p database_name -R -E > file_name.sql

예:

mysqldump -u root -p mr_sbc_clean -R -E > mr_sbc_clean_dump.sql

덤프 전개용.

명령어:

mysql -u user_name -p database_name < file_name.sql

예:

mysql -u root -p mr_sbc_clean_new < mr_sbc_clean_dump.sql

덤프를 작성하려면 다음 절차를 따릅니다.

  1. 합니다.MySQL의 bin 폴더에는 MySQL이 설치되어 있습니다.
    ex:C:\Program Files\MySQL\MySQL Server 8.0\bin.
    mysqldump를 선택합니다.실행하다또는 환경변수의 경로변수에 있는 폴더 위에 셋업이 있습니다.

  2. CMD에서 mysqldump를 누르면 CMD가 dump 명령을 식별할 수 있음을 알 수 있습니다.

  3. 이제 "mysqldump -h [host] -P [port] -u [fort] -u [filse] -p --sys-p --no-create-info --single-transaction --quick --lock-databse=false ABC_databse > c:\xyz.sql"를 실행합니다.
  4. 위의 명령어는 패스워드를 입력하도록 요구되며 처리를 시작합니다.

언급URL : https://stackoverflow.com/questions/1078196/how-to-take-complete-backup-of-mysql-database-using-mysqldump-command-line-utili

반응형