そもそものデータベースのバックアップ方法については、
「ミニバードのサーバー障害への対応の覚書き」
に書いてある。
元のサーバーは「neo-sahara.com」、インポートするサーバは「192.168.111.111」とする。
データベース名は「wpdatabase」、sqlファイルの名前が「test.sql」、データベースのユーザー名は「hoge」、データベースのパスワードを「hogepass」とする。
データベースのsqlファイルに書かれている「neo-sahara.com」をすべて「192.168.111.111」に置換しておく。
これには秀丸Speeeeed(spe5d151.zip)を使った(あっという間に終わる。)。
ちなみに18万個置換した。
置換後のsqlファイルをSFTPでOPiPC2上にアップロードしておく。
ここでは便宜上の/home/orangepi/へアップロードしたとする。
TeraTermからSSHでログインしてMySQLを起動する。
mysql -u root -p
ユーザー名やデータベース名を一応確認しておく。
mysql> select user,host from mysql.user;
mysql> show databases;
MySQLから抜ける。
mysql> exit;
データベースのインポートは以下のコマンドを実行する。
mysql -u[ユーザー名] -p[パスワード] [インポートするデータベース名] < [インポートするファイル名]
今回の例では、
1 |
mysql -uroot -phogepass wpdatabase < /home/orangepi/reple.sql |
を実行する。
1 |
mysql: [Warning] Using a password on the command line interface can be insecure. |
と叱られる。
確かにそうだ。
しばらく待って、Ubuntuのカーソルが帰ってきたら完了だ。
ちなみに、私の環境(Orange Pi PC2で行い、SQLのサイズが約117MBだった。)では15分以上待たされた。
データベースのインポート履歴
2017/07/14 19:34
2017/08/07 14:19
2017/09/14 15:19
2017/09/26 21:54
2017/10/18 05:36
2017/12/17 20:19
2018/02/01 19:37
2019/04/09 20:29 ※1※2
※1
レンタルサーバのphpmyadminを使ってバックアップしたものをOPi PC2上のデータベースにリストアしようとしたらエラーが出た。
1 |
ERROR 1217 (23000) at line 12751: Cannot delete or update a parent row: a foreign key constraint fails |
line 12751って言われてもねえ、と思って途方に暮れた。
UpdraftPlusを使ってGoogleDriveに保存している方のデータを使ってインポートしたら問題なく完了した。
「Orange Pi PC2 – UpdraftPlusでGoogleDriveに保存したMySQLのデータベースをインポートする –」
違いは不明。
※2
レンタルサーバの方はSSL化しているので、OPiもそうしようとしたらうまくいかなかった。
SSLを止めようとしたがその方法も良くわからず、
/etc/apache2/sites-available
にある default-ssl.conf を default-ssl.conf_ に改名したら止まったようだ。
上でデータベースをインポートする前に https を http に置換する操作を追加した。
いまのところ問題なく動作している。