I am using sugarsync to sync the localhost folders between a mac and a PC,
I want to sync the the database also.
Can I do it by simply synchronizing folders (I use xampp on the PC and WAMP on the mac) or is it more complicated then that?
and if it is possible what files and folder I should synchronize?
3 に答える
要するに、これは良い考えではなく、私はそれが可能になるとは思わない。データベースサーバーはデータベースファイルに排他的にアクセスする必要があるため、データベースファイルは基本的にロックダウンされています。sugarsyncがそれらのファイルがどのような状態にあるかを知る方法はないので、実際には半分完成したファイルをソースから宛先にコピーする可能性があります。重要な操作中にsugarsyncがデータファイルへのアクセスをブロックする可能性があるため、データベースが完全に破損する可能性もあります。
データベースの同期コピーを保持する必要がある場合は、ここにいくつかのアイデアがあります。
- 古き良きバックアップと復元。データベースの最新のコピーが必要ない場合は、1日に1回バックアップをスケジュールできます。次に、sugarsyncを使用してこのファイルを宛先にコピーしてから、復元します。
- レプリケーション。最小限の遅延でデータベースを常に同期させる必要がある場合は、レプリケーションを検討することをお勧めします。これにより、あるデータベースから別のデータベースにトランザクションを複製できます。
質問は1年前ですが、他の誰かがそれに出くわした場合に備えて、これを追加すると思いました. 私は実際、この人が 2 年ほど Dropbox を使って試みていたこととまったく同じことをしています。MySQL データ ファイルを共有の Dropbox フォルダに置き、mysql.ini を編集して、デフォルトの場所にないことを知らせます。正常に動作させるための鍵は、コンピューターを切り替えるときに MySQL を開始/停止することです。たとえば、自宅で作業している場合は、EasyPHP を起動します (XAMPP の代わりにそれを使用します)。私のhtdocは、Dropbox経由でも共有されているシンボリックリンクされたフォルダーにあります。ここで作業を行ってから、EasyPHP をシャットダウンします。オフィスに入ると、すべてが同期され、そこで EasyPHP を起動します。
ある場所または別の場所で EasyPHP をシャットダウンするのを忘れた場合、db は同期しません (他の人が指摘したように、データ ファイルはロックされます)。そのため、LogMeIn 経由で他のマシンにログインし、EasyPHP をシャットダウンして1、2 分後、準備完了です。
これが「正しい」方法ではない理由はたくさんあると思いますが、データの損失やエラーがゼロで、問題なく機能しています。
いいえ、ファイル同期ツールを使用してデータベースファイルを同期するだけでは、データベースの同期を維持することはできません。
データベースの同期は「レプリケーション」と呼ばれ、レプリケーション専用のmysqlマニュアルには第1章全体があります。