Syniti DR(旧DBMoto)を使用してMySQLへレプリケーションを実施したときに、次のエラーが発生することがあります。
MySql.Data.MySqlClient.MySqlException (0x80004005): Loading local data is disabled; this must be enabled on both the client and server sides
これは、MySQLへの初期リフレッシュ(全件転送)時にバルクインサートをするために使用する、MySQL側で用意されているLoad data local infile機能が無効化されていることを指しています。
MySQLのバージョンによっては、このLoad data local infile機能がデフォルトで無効化されていることがあり、MySQLサーバー側で次のクエリを実行することでこの機能を有効化できます。
SET GLOBAL local_infile=on;
また、このLoad data local infile機能を使用するためには、MySQLサーバー側だけではなくクエリを発行するクライアント側でも設定が必要な場合があります。
例えば、Syniti DRサーバーにインストールされているMySQLへの接続ドライバ(MySQL Connector/NET)のバージョンが8.0.18の時、デフォルトで機能が無効化されていることがあり、Syniti DRのコンソールから次のパラメータを追加する必要があります。
allowLoadLocalInfile= true;
設定箇所は次の通りです。
- ターゲットのMySQL接続を右クリックし、プロパティをクリック
- 接続という項目の右端に存在するボタンをクリックして、ドライバのプロパティを表示
- 一番下の拡張プロパティにて、 “allowLoadLocalInfile= true;” と入力、OKで画面を閉じる
関連したトピックス
- Oracle/MySQL .NET Data Provider接続【リアルタイムレプリケーションツールDBMoto】
- [DBMoto API]外部からレプリケーションやグループを開始・停止するサンプルC#プログラム
- DBMotoからSyniti Data Replicationへのアップグレード方法
- APIからリフレッシュを実行するサンプルスクリプト[C#] [Syniti DR (DBMoto)]
- APIからレプリケーションの最新の実行件数を取得するサンプルスクリプト[C#] [Syniti DR (DBMoto)]
- [DBMoto]Amazon Auroraを正式サポート!オンプレミスDBからの移行やDB間の連携に!
- MySQLでバイナリログを使用したミラーリング【リアルタイムレプリケーションツールDBMoto】
- Azure Synapse Analytics(旧 SQL DW)へのレプリケーションを検証してみました[Syniti DR]
- 接続ドライバについて【リアルタイムレプリケーションツールDBMoto】
- DBMotoのレプリケーションパフォーマンスを向上させる方法