MySQL Serverの移行処理
前提条件
•ソースとターゲットのSQL Serverインスタンスをインストールする必要があります。これらは別のコンピューターでホストできます。
•MySQLツールは、1台以上のコンピューター(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をソースデータベースサーバーのアドレスに変更する •SRCROOTLOGINをソースMySQLサーバールートユーザーログインに変更する •SRCDBNAMEをバックアップするソースESET PROTECTデータベースの名前に変更する •BACKUPFILEをバックアップが保存されるファイルへのパスに変更する •TARGETROOTLOGINをターゲットMySQLサーバールートユーザーログインに変更する •TARGETHOSTをターゲットデータベースサーバーのアドレスに変更する •TARGETDBNAMEをターゲットESET PROTECTデータベースの名前に変更する(移行後) •TARGETLOGINをターゲットデータベースサーバー上の新しいESET PROTECTデータベースユーザーのログイン名に変更する •TARGETPASSWDをターゲットデータベースサーバー上の新しいESET PROTECTデータベースユーザーのパスワードに変更する |
コマンドラインで次のSQL文を実行する必要はありません。GUIツールが使用できる場合は、既に知っているアプリケーションを使用できます。
1.ESET PROTECTサーバー/MDMサービスを停止します。
2.ソースESET PROTECTデータベースの完全データベースバックアップ(移行するデータベース)を作成する:
mysqldump --host SRCHOST --disable-keys --extended-insert --routines -u SRCROOTLOGIN -p SRCDBNAME > BACKUPFILE |
3.ターゲットMySQLサーバー上に空のデータベースを準備する:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE DATABASE TARGETDBNAME /*!40100 DEFAULT CHARACTER SET utf8 */;" |
Linuxシステムでは、引用符の「"」の代わりにアポストロフィ文字「'」を使用してください。 |
4.ターゲットMySQLサーバーのデータベースを以前に準備された空のデータベースに復元する:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p TARGETDBNAME < BACKUPFILE |
5.ターゲットMySQLサーバー上にESET PROTECTデータベースユーザーを作成する:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE USER TARGETLOGIN@'%' IDENTIFIED BY 'TARGETPASSWD';" |
TARGETLOGINの推奨文字:
•小文字のASCII文字、数字、アンダースコア「_」
TARGETPASSWDの推奨文字:
•大文字と小文字のASCII文字、数字、スペース、特殊文字を含むASCII文字のみ
•非ASCII文字、波括弧{}または@は使用しないでください。
上記の文字に関する推奨事項に従わない場合、データベース接続の問題が発生する可能性があるか、データベース接続文字列の修正中に後から特殊文字をエスケープする必要があります。文字のエスケープルールはこのマニュアルの対象外です。
6.ターゲットMySQLサーバー上のESET PROTECTデータベースユーザーに適切なアクセス権を付与する:
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;" |