programing

MySQL Workbench - 이름이 다른 동일한 서버에서 데이터베이스를 복제하는 방법?

cafebook 2023. 10. 5. 23:32
반응형

MySQL Workbench - 이름이 다른 동일한 서버에서 데이터베이스를 복제하는 방법?

MYSQL Workbench를 사용하고 있는데 이름이 다른 동일한 서버에 데이터베이스를 복제하고 싶습니다.모든 테이블 구조와 데이터를 새 데이터베이스에 복제해야 합니다.

일반적인 방법은 아마도data export데이터베이스의 sql 스크립트를 생성한 다음 새 데이터베이스에서 스크립트를 실행하지만 몇 가지 문제가 발생합니다.

어쨌든, 더 좋은 방법이나 더 쉬운 방법은 없을까요?

MySQL Workbench에서 마이그레이션 마법사를 사용할 수 있습니다.소스 및 대상 선택에서 모두 동일한 로컬 연결을 선택한 다음 수동 편집 단계에서 스키마 이름을 변경하면 됩니다.수동 편집 단계에서 아무것도 나타나지 않으면 다음을 클릭하면 원본과 대상이 나타납니다.원본 데이터베이스 이름을 천천히 클릭하고 올바른 이름으로 편집합니다.끝까지 확인하고 voila - 이름이 다른 두 개의 동일한 데이터베이스가 있습니다.MySQL Workbench 사용자에 대해 대상 데이터베이스를 이미 생성하고 해당 데이터베이스에 대한 권한을 부여해야 합니다.

MySQL Workbench 8.0에서 하려고 했습니다.하지만 컬럼 통계에 대한 오류가 계속 발생했습니다.주요 아이디어는 MySQL Workbench의 설치 디렉토리에 있는 mysqldump.exe를 사용하여 데이터를 내보내는 것입니다.따라서 Windows 지향 플랫폼을 가정하면 다음과 같습니다.

  1. 파워셸을 열고 mysqldump.exe 디렉토리로 이동합니다.내 경우 명령은 다음과 같습니다.

                    cd C:\Program Files\MySQL\MySQL Workbench 8.0 CE
    
  2. 올바른 인수를 제공하는 mysqdump를 실행하여 데이터베이스 내보내기:

    ./mysqldump.exe --host=[hostServerIP] --protocol=tcp --user=[nameOfUser] --password=[yourPassword] --dump-date=FALSE --disable-keys=FALSE --port=[portOfMysqlServer] --default-character-set=utf8 --skip-triggers --column-statistics=0 "[databaseName]"
    
  3. 디렉토리를 변경하지 않고 Powershell에서 다음 명령을 사용하여 내보낸 파일(.sql)을 가져옵니다.

    Get-Content "[pathToExportedDataFile]" | ./mysql.exe --user=[nameOfUser] --password=[yourPassword] --port=[portOfMysqlServer] --host=[hostServerIP]  --database=[nameOfNewDatabase] --binary-mode=1
    

mysqdump 옵션에 대한 자세한 정보는 여기 문서에서 확인할 수 있습니다.

다음 사항에 유의하시기 바랍니다.

  • []의 값을 자신의 값으로 교체하고 []을 제거하는 것을 잊지 마십시오.가 있는 따옴표("")를 제거하지 마십시오.
  • 위의 내용은 작동하지 않으므로 파워셸을 cmd나 git-bash와 같은 것으로 전환하지 마십시오.
  • 3단계에서는 MySQL Workbench에서 새 데이터베이스를 만든 다음 powershell 명령을 실행했습니다.
  • 항목을 나열합니다. 먼저 CREATE DATABASE 문을 사용하여 새 데이터베이스를 만듭니다.
  • 둘째, mysqdump 도구를 사용하여 복사할 데이터베이스의 모든 데이터베이스 개체와 데이터를 내보냅니다.
  • 셋째, SQL 덤프 파일을 새 데이터베이스로 가져옵니다.

언급URL : https://stackoverflow.com/questions/54996958/mysql-workbench-how-to-clone-a-database-on-the-same-server-with-different-name

반응형