目次【本記事の内容】
1.問題が発生したのでSerposcopeをPCに移行させる
Google Cloudの無料枠を使って、Serposcopeを運営していた。しかし異常事態が発生。
GCEが課金されていた。理由がよくわからない。
このままだと、金額がどれくらいなのかわからないので、とりあえずいつも使っているPCに移行させるようにした。その後に、どうするか手段を考えることにする。
データを移行しなければいけないが、デフォルト状態ではなく、 MySQLを使っていた。デフォルト状態だったら、データベースのファイルがひとつ作成されているので、それをWindows版のデータベースのファイルと入れ替えればよかった。しかし、MySQLを使っている場合は、データを吸い出して、Windows版にも MySQLをインストールして、吸い出したデータを読み込ませないといけない。そのやり方を書こうと思う。
Serposcopeは、Google CloudではJava版を使っていた。WindowsはJava版も使えるが、普通のインストール版をインストールすることにした。
手順は次のとおり。
⒈ PCにWindows版をインストール
⒉PCにMariaDBをインストール
⒊GCEのデータベースからデータを抜き取る
⒋抜き取ったデータをWindowsのMariaDBに入れる
⒌Serposcopeの設定をmySQLで使う設定にする
2.移行
2-1.Windows 版をインストール
Windows 版をSerposcopeのサイトからダウンロードして、クリックしてインストール。
2-2.MariaDBをインストール
MariaDBというのは、MySQL の上位バージョンだ。MySQLの上位互換で、そのまま使うことができる。
GCE でもMariaDBの方をインストールされていたので、 Windows の方でもMariaDBをインストールすることにする。
MariaDBのサイトサイトで、MariaDBをダウンロードする。
ここでは Windows 1の64 Bit 版をダウンロードした。
ダウンロードしたらインストールする 。 そのまま デフォルトでいいと思う。
2-3.GCEのデータベースからデータを抜き取る
ここで 、サーバーから今まで溜めていたデータを抜き取ってパソコンの方のデータベースに読み込まないといけない。
上にも書いたようにデフォルトの設定のままだったら、データベースファイルが作られているのでそれを単にダウンロードして、パソコンのほんの同じ名前のデータベースとすげ替えるだけで動くと思うが、 MySQL なので、まずはデータを抜き取る作業をしようと思う。
それにはmysqldumpというコマンドを使う。
mysqldump -u ユーザー名 -p パスワード 保存したいデータベース名 > 保存先のパスとファイル名
という形で一応できるみたいだ。本当はもっとオプションがたくさんつけられるが、最低これだけはいるみたい。
ユーザー名、パスワード、データベース名、保存するファイル名とパスを用意しておく。
まず Google のインスタンスにコンソールログインする。
mysqldump -u takashi-p serposcope > serposcope
と 打つ。 ここでtakashiがユーザー名、serposcopeが保存したいデータベース名、保存先のファイル名も同じにする。 保存先は同じ階層にするのでファイル名のみ。
パスワードの後に何も書かないとコマンドを打った後にEnter password:と出るのでその時にパスワードを打ってリターンを押す。するとコマンドを受け付けない状態になる。
しばらく待っていると、 再びコマンド入力待機状態になる。
ls と打って、ファイルを確かめるとファイルができている。
このファイルをダウンロードする。
ここではブラウザの コンソールを使っているのだけれど、右上の設定アイコン押すと ファイルをダウンロード という項目があるのでそれをクリックするとパスを入力する画面になる。ここに絶対パスを入力して、ダウンロードボタンを押すと、 ファイル転送と出て 進行度合いのパーセンテージが表示される。
これが100パーセントになると、ファイルがダウンロードされる。
2-4.抜き取ったデータをWindowsのMariaDBに入れる
Command Prompt (MariaDB 10.6 (x64))というアプリを実行する。 Windows の元々のコマンドプロンプトはパスが通ってないので MySQL が使いづらい。 こちらのコマンドプロンプトはパスが通っている。
mysql --version
と打ち込むと、インストールした MySQL のバージョンが表示される。
ここで、mysql -u ユーザー名 -p
と打ち込んで MySQL にログインする。
mysql -u takashi -p
Serposcope用のデータベースを作成。
ここではデータベース名を serposcopeとする。
create database serposcope;
打ち込んだら、実際にできたか確認。
show databases;
と 打ち込む。
すると作成したデータベースが表示される。
このデータベースに、先ほどダウンロードした データファイルを復元する。
exitと打ち込むか、ctrl + cとキーボードを叩いてデータベースから出る。
ここでダウンロードしたデータファイルがある場所に移動。
cd データベースがある場所のパス
ここで、 例えば 指定したパスがD ボリュームにある場合、cdコマンドを打った後にD と打ってボリュームを切り替えないといけない。
D
ここでデータファイルからMySQLにデータを復元する。
mysql-u ユーザー名 -p (パスワード省略) データベース名 < データファイルのある場所のパスとファイル名(ここでは最初にデータファイルの場所に移動したのでファイル名だけ)
mysql -u takashi -p serposcope < serposcope
コマンドを打ち込んでリターンを押すとパスワードを聞かれるのでパスワードを打ち込む。
データを読み込んでいる最中は入力ができなくなるが
しばらく待つと再びできるようになる。
これでデータを MySQL に復元することができた。
2-5.Serposcopeの設定をMySQL を使う設定にする
Serposcopeの設定ファイルであるserposcope.conf を書き換え。
デフォルトのファイルパスは
C:\ProgramData\serposcope\serposcope.conf
serposcope.conf をエディタなどで開いて、
# serposcope.db.url=jdbc:mysql://localhost/DATABASE?user=USER&password=PASS&allowMultiQueries=true
と書いてあるところを頭のシャープを取り除いて
serposcope.db.url=jdbc:mysql://localhost/データベース名?user= MySQL のユーザー名&password=MySQL のパスワード&allowMultiQueries=true
と書き換え。
( ここで確かコンフィグファイルは普通に変更できないようになっていた。 やり方をもう忘れてしまった。アクセス許可の問題なのでググって調べてみてください。)
書き込んだら保存。 これでSerposcopeを立ち上げると MySQL のデータを読み込んで表示する。
また Serposcopeにログインして SYSCONFIGをクリックすると serposcope.db.url というところがjdbc:mysql:/~となっている。
まとめ
Serposcopeの移行をやってみました。ちょっとしたデータベースの知識が必要でしたが簡単に移行できました。
補足ですが、デフォルトのままで、データベースを使わない時は、db.mv.dbというファイルをダウンロードして、PCの同じファイル(C:\ProgramData\serposcopeにある)と入れ替えてやれば、できると思います。その時、プロパティに、”セキュリティ: このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。”と出るとき、横の許可するにチェックを入れてください。