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へのアップグレード方法
- Azure Synapse Analytics(旧 SQL DW)へのレプリケーションを検証してみました[Syniti DR]
- レプリケーション対象テーブル構成変更後のSyniti Data Replication (旧DBMoto) マッピング対応について
- 多様化するデータは小回りの利くツールでガバナンスの徹底を