mysql 확인 마이그레이션 - 같은 MySql 인스턴스에 MySQL 데이터베이스 복제하기




7 Answers

매뉴얼에서 데이터베이스 복사 에서 덤프를 직접 mysql 클라이언트로 파이프 할 수 있다고 말한 것처럼 :

mysqldump db_name | mysql new_db_name

MyISAM을 사용한다면 파일을 복사 할 는 있지만 권장하지는 않습니다. 그것은 약간 사납다.

여러 가지 좋은 답변으로부터 통합되었습니다.

mysqldumpmysql 명령은 다음과 같이 연결 정보를 설정하는 옵션을 허용한다.

mysqldump -u <user name> --password=<pwd> <original db> | mysql -u <user name> -p <new db>

또한, 새로운 데이터베이스가 아직 존재하지 않는다면 미리 만들어야합니다 (예 : echo "create database new_db_name" | mysql -u <dbuser> -p ).

인스턴스란 연결

같은 mysql 데이터베이스 인스턴스에서 현재 데이터베이스 sitedb1sitedb2 복사하는 스크립트를 작성하고 싶습니다. 나는 SQL 스크립트에 sitedb1을 덤프 할 수 있다는 것을 알고있다.

mysqldump -u root -p sitedb1 >~/db_name.sql

그런 다음 sitedb2 로 가져옵니다. 첫 번째 데이터베이스를 SQL 파일에 덤핑하지 않고도 더 쉬운 방법이 있습니까?




$ mysqladmin create DB_name -u DB_user --password=DB_pass && \
    mysqldump -u DB_user --password=DB_pass DB_name | mysql -u DB_user --password=DB_pass -h DB_host DB_name



당신은 (의사 코드로) 다음을 사용할 수 있습니다 :

FOREACH tbl IN db_a:
    CREATE TABLE db_b.tbl LIKE db_a.tbl;
    INSERT INTO db_b.tbl SELECT * FROM db_a.tbl;

CREATE TABLE ... SELECT ... 구문을 사용하지 않는 이유는 인덱스를 보존하기 위해서입니다. 물론 이것은 테이블 만 복사합니다. 뷰 및 프로 시저는 동일한 방식으로 수행 될 수 있지만 복사되지 않습니다.

CREATE TABLE을 참조하십시오.




다음과 같이 할 수 있습니다.

mysqldump -u[username] -p[password] database_name_for_clone 
 | mysql -u[username] -p[password] new_database_name



mysqldbcopy 명령을 사용하여 데이터베이스를 다른 서버 또는 동일한 서버로 복사하는 것이 더 좋습니다.

mysqldbcopy --source=root:[email protected] --destination=root:[email protected] database-name:database-name-clone

[MySQL]




나는 이것을 할 방법이 없다고 생각합니다. PHPMyAdmin이이를 수행하면 DB를 덤프 한 다음 새 이름으로 다시 삽입합니다.




터미널에서 'mysqldbcopy'를 사용하십시오. 이 사건은 [MySQL] 잘 언급되어 [MySQL] . 예 : cmd 프롬프트를 시작하십시오. mySql 서버의 bin 폴더로 이동하십시오. 아래 쿼리를 실행하십시오.

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqldbcopy --source=root:[email protected] --destination=root:[email protected] master:master_clone

여기에 내 'master'db를 'master_clone'에 복사하려고합니다.




Related