使用することをお勧めするのは、MySQL Master-Master レプリケーションです。私は自分のラップトップとメインコンピューターでそれを使用して、MySQL データベースを相互に同期しています (両方の開発環境)。
オンライン サーバーがサーバー 1 で、LAN サーバーがサーバー 2 であるとします。サーバー 1 の MySQL の my.ini ファイルに次のコードを追加する必要があります。
#Config for server 1
server-id=1
log-bin=mysql-logbin
log-slave-updates
replicate-same-server-id=0
auto_increment_increment=2
auto_increment_offset=1
report-host=#IP ADDRESS of server 1#
binlog-ignore-db=MySQL
およびサーバー 2 の my.ini ファイル
#Config for server 2
server-id=2
log-bin=mysql-logbin
log-slave-updates
replicate-same-server-id=0
auto_increment_increment=2
auto_increment_offset=2
report-host=#IP ADDRESS of server 2#
binlog-ignore-db=MySQL
phpmyadmin よりも、「複製」ユーザーを作成できます。サーバー 1 にユーザーを追加し、サーバー 1 のユーザー データを使用してサーバー 2 からサーバー 1 に接続します。これで、サーバー 2 はサーバー 1 のスレーブになります。逆に、サーバー 2 にレプリケーション ユーザーを作成し、それをサーバー1に追加します。これで、両方のサーバーが互いのマスターになり、常に同期が維持されます!
考慮すべき重要なことは、オンライン サーバーが LAN サーバーにアクセスできる必要があるため、ネットワーク アドレス変換またはポート転送をセットアップする必要がある場合があるということです。
両方のサーバーを常に同期させたくないが、主キーの問題を解決したい場合は、これを両方のサーバーの my.ini に追加するだけです。
#Config for server 1
auto_increment_increment=2
auto_increment_offset=1
#Config for server 2
auto_increment_increment=2
auto_increment_offset=2
サーバー 1 は 1、3、5、7、9、11... のみを主キーとして使用し、サーバー 2 は 2、4、6、8、10、12... のみを主キーとして使用します。そうすれば、問題は解決します。
注: Master-Master レプリケーションを機能させる最善の方法は、両方のサーバーでデータベースからすべてを削除することです。すべてのログ ファイルをリセットするよりも (「データ」ディレクトリからそれらを削除し、他のファイルのいくつかの番号を編集することで手動で行うことができます)、コマンドを介して行うこともできます (はるかに節約できます)。それよりも、レプリケーション ユーザーをセットアップします。どちらのサーバーも空でログがないため、何も起こりません。最後に、すべてのデータベースをいずれかのサーバーに追加します。数秒以内に両方のデータベースが同期されます。
幸運を!