같은 MySql 인스턴스에 MySQL 데이터베이스 복제하기


Answers

MySQL 유틸리티 사용하기

MySQL 유틸리티에는 기본적으로 모든 관련 객체 ( "테이블, 뷰, 트리거, 이벤트, 프로 시저, 함수 및 데이터베이스 수준 권한")와 데이터를 포함하는 DB를 하나의 DB 서버에서 동일하거나 동일한 데이터베이스로 복사하는 멋진 도구 인 mysqldbcopy 가 포함되어 있습니다. 다른 DB 서버. 실제로 복사 된 것을 사용자 정의하는 데 사용할 수있는 많은 옵션이 있습니다.

그래서 OP 질문에 대답 해주십시오.

mysqldbcopy \
    --source=root:your_password@localhost \
    --destination=root:your_password@localhost \
    sitedb1:sitedb2
Question

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

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

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




터미널 / 명령 프롬프트에서 명령을 실행해야합니다.

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

예 : mysqldump -u root test_db1 | mysql -u root test_db2 mysqldump -u root test_db1 | mysql -u root test_db2

이렇게하면 test_db1을 test_db2로 복사하고 'root'@ 'localhost'에 액세스 권한을 부여합니다.




가장 쉬운 방법은 터미널에서이 명령을 입력하고 루트 사용자에게 권한을 설정하는 것입니다. 나를 위해 일해 ..!

:~$> mysqldump -u root -p db1 > dump.sql
:~$> mysqladmin -u root -p create db2
:~$> mysql -u root -p db2 < dump.sql



먼저 중복 데이터베이스를 만듭니다.

CREATE DATABASE duplicateddb;

사용 권한 등이 모두 제자리에 있는지 확인하십시오.

mysqldump -u admin -p originaldb | mysql -u backup -p password duplicateddb;



이 문장은 MySQL 5.1.7에서 추가되었지만 위험한 것으로 판명되었으며 MySQL 5.1.23에서 제거되었다. 5.1에서 구현 된 인코딩을 사용하여 데이터베이스 이름을 데이터베이스 디렉토리 이름에 매핑하기 위해 5.1 이전의 데이터베이스를 업그레이드 할 수 있도록하기위한 것입니다. 그러나이 명령문을 사용하면 데이터베이스 내용이 손실 될 수 있으므로 제거 된 것입니다. RENAME DATABASE가있는 이전 버전에서는 RENAME DATABASE를 사용하지 마십시오.

새 인코딩으로 데이터베이스 이름을 업그레이드하는 작업을 수행하려면 대신 ALTER DATABASE db_name UPGRADE DATA DIRECTORY NAME을 사용 http://dev.mysql.com/doc/refman/5.1/en/alter-database.html . http://dev.mysql.com/doc/refman/5.1/en/alter-database.html




phpmyadmin 을 설치 한 경우 간단한 방법 :

데이터베이스로 이동하여 "작업"탭을 선택하면 "데이터베이스 복사"블록이 표시됩니다. 그것을 사용하면 데이터베이스를 복사 할 수 있습니다.




그렉의 답변 외에도.
new_db_name 이 아직 존재하지 않으면 가장 쉽고 빠른 방법입니다.

echo "create database new_db_name" | mysql -u <user> -p <pwd> 
mysqldump -u <user> -p <pwd> db_name | mysql -u <user> -p <pwd> new_db_name



Related