MySQL Server의 마이그레이션 프로세스
필수 구성 요소
•소스 및 대상 SQL Server 인스턴스가 설치되어 있어야 하며, 이러한 인스턴스는 서로 다른 컴퓨터에서 호스팅될 수 있습니다. 이러한 인스턴스는 서로 다른 컴퓨터에서 호스팅될 수 있습니다.
•MySQL 도구를 하나 이상의 컴퓨터(mysqldump 및 mysql 클라이언트)에서 사용할 수 있어야 합니다.
유용한 링크
•https://dev.mysql.com/doc/refman/8.0/en/copying-databases.html
•https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
•https://dev.mysql.com/doc/refman/8.0/en/mysql.html
마이그레이션 프로세스
명령에서 아래 구성 파일이나 SQL 문을 항상 다음 항목으로 바꾸십시오. •SRCHOST를 소스 DB 서버의 주소로 바꿉니다. •SRCROOTLOGIN을 소스 MySQL Server 루트 사용자 로그인으로 바꿉니다. •SRCDBNAME을 백업할 소스 ESET PROTECT DB의 이름으로 바꿉니다. •BACKUPFILE을 백업이 저장되는 파일의 경로로 바꿉니다. •TARGETROOTLOGIN을 대상 MySQL Server 루트 사용자 로그인으로 바꿉니다. •TARGETHOST를 대상 DB 서버의 주소로 바꿉니다. •TARGETDBNAME을 대상 ESET PROTECT DB(마이그레이션 후)의 이름으로 바꿉니다. •TARGETLOGIN을 대상 DB 서버의 새 ESET PROTECT DB 사용자의 로그인 이름으로 바꿉니다. •TARGETPASSWD를 대상 DB 서버의 새 ESET PROTECT DB 사용자의 패스워드로 바꿉니다. |
명령줄을 통해 아래 SQL 문을 실행하지 않아도 됩니다. 사용 가능한 GUI 도구가 있는 경우 기존에 알고 있던 애플리케이션을 사용해도 됩니다.
1.ESET PROTECT 서버/MDM 서비스를 중지합니다.
2.소스 ESET PROTECT DB(마이그레이션할 DB)의 전체 DB 백업을 생성합니다.
mysqldump --host SRCHOST --disable-keys --extended-insert --routines -u SRCROOTLOGIN -p SRCDBNAME > BACKUPFILE |
3.대상 MySQL Server에서 빈 DB를 준비합니다.
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE DATABASE TARGETDBNAME /*!40100 DEFAULT CHARACTER SET utf8 */;" |
Linux 시스템에서는 따옴표(") 대신 아포스트로피(')를 사용하십시오. |
4.대상 MySQL Server의 DB를 이전에 준비한 빈 DB로 복원합니다.
mysql --host TARGETHOST -u TARGETROOTLOGIN -p TARGETDBNAME < BACKUPFILE |
5.대상 MySQL Server에서 ESET PROTECT DB 사용자를 생성합니다.
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE USER TARGETLOGIN@'%' IDENTIFIED BY 'TARGETPASSWD';" |
TARGETLOGIN에 권장되는 문자:
•소문자 ASCII 문자, 숫자 및 밑줄("_")
TARGETPASSWD에 권장되는 문자:
•ASCII 문자만(대문자 및 소문자 ASCII 문자, 숫자, 공백, 특수 문자 포함)
•ASCII 이외의 문자는 사용하지 마십시오(예: 중괄호({})나 @).
위의 문자 권장 사항을 따르지 않을 경우 DB 연결에 문제가 발생하거나 DB 연결 문자열을 수정하는 동안 나중의 단계에서 특수 문자를 이스케이프해야 할 수 있습니다. 이 문서에는 문자 이스케이프 규칙이 포함되어 있지 않습니다.
6.대상 MySQL Server에서 ESET PROTECT DB 사용자에게 적절한 접근 권한을 부여합니다.
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=GRANT ALL ON TARGETDBNAME.* TO TARGETLOGIN;" |
Linux 시스템에서는 따옴표(") 대신 아포스트로피(')를 사용하십시오. |
7.tbl_authentication_certificate 표의 콘텐츠를 제거합니다(삭제하지 않으면 에이전트가 새 서버에 연결되지 않을 수 있음).
mysql --host TARGETHOST -u root -p "--execute=DELETE FROM era_db.tbl_authentication_certificate where certificate_id = 1;" |