MySQLのデータベースファイルをDropboxで共有して、他のPCでもMySQLのデータベースに気軽にアクセスできるようにする方法についての覚書です。
経緯
基本的にはメインPCでMySQLを動かす想定ですが、サブPCでも気軽にメインPCのMySQLデータベースにアクセスできるようにしたかった。
あとバックアップ的な観点で、手動でバックアップ作成する運用だと、突然PCのデータが読み込めなくなったとき困るので、データを常にオンラインストレージ上に置いておこうというところです。
想定:Windows PC間での共有
オンラインストレージのDropboxとMySQL(MAMP版)がインストールされている2台のWindows PC間でMySQLのデータを共有・同期させます。
今回は、MySQLの設定を変更してディレクトリを変更するのではなく、OSのシンボリックリンクを使って設定してみました。
ちなみに、複数のPCで同時にMySQLを起動するようなことは想定してません。MySQLに接続しないPCではMAMPのサービスを停止させておき、 MySQLに接続するPCでMAMPのサービスを実行させておく想定です。
また、文字コード等で面倒が起こると嫌なので、どちらのPCのMySQLも同じ設定を使用しています。
設定方法
- メインPC:MAMPが起動している場合は”Stop Servers”を押してサービスを停止する。コマンドプロンプトでMySQLにログインしている場合も念の為、”EXIT”でログアウトしておく。
- メインPC:”C:\MAMP\db”ディレクトリをDropbox上の任意のディレクトリに移動させる。
- メインPC:管理者権限でコマンドプロンプトを起動し、”mklink /d C:\MAMP\db D:\Dropbox\database\MAMP\db”コマンドを実行する。実行後、”C:\MAMP\”に”db”という名前でシンボリックリンクが作成される。
- メインPC:MAMPの”Start Servers”ボタンを押してサービスを起動し、MySQLが正常に立ち上がるか確認する。念の為、コマンドプロンプトからMySQLにログインできるかも確認する。
- サブPC:メインPCでDropboxに追加したMySQLのデータベースが同期完了となるのを待つ。
- サブPC: MAMPが起動している場合は”Stop Servers”を押してサービスを停止する。コマンドプロンプトでMySQLにログインしている場合も念の為、”EXIT”でログアウトしておく。
- サブPC: “C:\MAMP\db” ディレクトリを削除する。
- サブPC: 管理者権限でコマンドプロンプトを起動し、”mklink /d C:\MAMP\db C:\ユーザー\irail\Dropbox\database\MAMP\db”コマンドを実行する。実行後、”C:\MAMP\”に”db”という名前でシンボリックリンクが作成される。
- サブPC:MAMPの”Start Servers”ボタンを押してサービスを起動し、MySQLが正常に立ち上がるか確認する。念の為、コマンドプロンプトからMySQLにログインできるかも確認する。
動作確認:問題なし
同時にMySQLのサービスを実行させるとMySQLが上手く起動しなくなったりしますが、そういったことをしなければ問題なさそうです。
MySQLの公式的に同時アクセスする方法があるのかも知りませんが、とりあえず学習用途でMySQLを利用するにはひとまずこれで十分使えそうです。
この記事を読んだ人はこんな記事も読んでいます。
MySQLのデータをDropboxでPC間共有する方法