mysqldump를 사용하여 mysql 데이터베이스의 전체 백업을 만들려면 어떻게해야합니까? 백업을 수행 할 때 지정한 데이터베이스의 테이블 만 백업됩니다. 절차와 기능은 그렇지 않습니다.mysqldump 명령 줄 유틸리티를 사용하여 mysql 데이터베이스의 전체 백업을 수행하는 방법
여기 내가 사용하고있는 백업 명령입니다 :
(운영 체제는 윈도우 비스타입니다.)
mysqldump -u username -p db1 > backup.sql
mysqldump를 사용하여 mysql 데이터베이스의 전체 백업을 만들려면 어떻게해야합니까? 백업을 수행 할 때 지정한 데이터베이스의 테이블 만 백업됩니다. 절차와 기능은 그렇지 않습니다.mysqldump 명령 줄 유틸리티를 사용하여 mysql 데이터베이스의 전체 백업을 수행하는 방법
여기 내가 사용하고있는 백업 명령입니다 :
(운영 체제는 윈도우 비스타입니다.)
mysqldump -u username -p db1 > backup.sql
이 버전에 조금 따라 달라집니다. 5.0.13 이전에는 mysqldump를 사용할 수 없었습니다. mysqldump는 남자 페이지에서
(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.
를 사용하여 백업 저장 프로 시저 '-R', 또한 명심 당신은 당신의 데이터베이스의 일관성있는 덤프를 원하는 경우 동안의 존재
mysqldump <other mysqldump options> --routines > outputfile.sql
우리의 경우 - (당신은 또한 MyISAM 테이블을 필요로하는 경우) (당신 만 백업 InnoDB의 경우) 또는 --lock-all-tables
이
이 명령을 사용하여 수정하면 --single-transaction
를 사용할 필요가 만 저장 프로 시저 및 트리거 백업 할 및 MySQL의 테이블과 데이터는 우리는 같은 것을 실행해야하지 :
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql
을 --routines 플래그 외에도
mysql <database> < outputfile.sql
당신이 저장 프로 시저 읽을 수있는 백업 사용자 권한을 부여해야합니다 다음에 대한 GRANT 권한의
GRANT SELECT ON `mysql`.`proc` TO <backup user>@<backup host>;
내 최소한의를 백업 사용자는 다음과 같습니다 경우
GRANT USAGE ON *.* TO ...
GRANT SELECT, LOCK TABLES ON <target_db>.* TO ...
GRANT SELECT ON `mysql`.`proc` TO ...
당신은 어떤 연결을 중단하지 않고 전체 즉 백업, 모든 데이터베이스, 절차, 루틴, 이벤트를 먹고 싶어.
mysqldump -u <username> -p -A -R -E --triggers --single-transaction > full_backup.sql
모든 데이터베이스 (또한
--all-databases
을 사용할 수 있습니다)에 대한
데이터베이스에서만 백업을 원할 경우.
mysqldump -u <username> -p <Database_Name1><database2> -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 information
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 서버의 모든 데이터베이스의 전체 백업을 만듭니다가 현재 날짜와 시간으로 이름이 파일에 대한 옵션이 있습니다.
내가 누락 된 권한입니다. +1 – carla
또한 마지막에 'FLUSH PRIVILEGES;'를 잊지 마세요. – carla