ロリポップでSSH接続をし、MySQL dumpとリストアを実行する方法
ロリポップより、SSHで接続して、MySQL dump(バックアップ)とリストア(復元)する方法を記載します。
※ロリポップでSSHを利用するには『スタンダード』『エンタープライズ』プランのみとなります。
ロリポップでSSH利用できるようにする。
ロリポップよりユーザ専用画面にログインします。
SSHの画面に移動し、「SSHを有効にする」をクリックします。すると、下記のような画面となり、SSHが有効になります。
今回は、
サーバ:dummyserver.lolipop.js
アカウント:lolipop.jp-dummyaccount
接続ポート:2222
パスワード:pass1234
という例で進めていきます。
ターミナルよりSSH接続を行う
ターミナルを起動します。
SSH接続は下記のようになりますので
ssh SSHアカウント名@ホスト名 -p 2222
「sshアカウント名」は先ほど有効にしたSSHの「アカウント」を
「ホスト名」は「サーバ」を入力します。
今回の例だと、下記のように実行します。
ssh lolipop.jp-dummyaccount@dummyserver.lolipop.js -p 2222
すると、下記のように表示されますので
Are you sure you want to continue connecting (yes/no)?
こちらは
yes
と記入しEnterを押してください。
次にパスワードを聞かれますので、管理画面より設定したパスワード(今回の場合pass1234)を入力し、Enterをクリックします。
これでSSH接続完了です。
MySQL dump(バックアップ)を行う。
次にMySQL dumpを行います。
今回は例として、ルートディレクトリ直下に「/backup」というディレクトリを作成し、その中にバックアップファイルを作成します。
また、今回のDBの情報は下記とします。
データベース名:dummy_DB
データベースホスト:dummy_HOST
データベースユーザ名:dummy_USER
データベースパスワード:dummy_PASS
保存するデータベースファイル名:dummy_FILE.sql
まずはバックアップファイルを保存するディレクトリを作成します。
mkdir backup
cd backup
次に、MySQL dumpコマンドを実行します。コマンドは
mysqldump データベース名 -uデータベースユーザ名 -pデータベースパスワード -hデータベースホスト > 保存するデータベースファイル名
となりますので、今回は下記のように実行します。
mysqldump dummy_DB -udummy_USER -pdummy_PASS -hdummy_HOST > dummy_FILE.sql
こちらを実行すると、backupディレクトリ内にdummy_FILE.sqlというファイルが作成されます。
以上でMySQL dump(バックアップ)完了です。
MySQL リストア(復元)を行う。
次にMySQLのリストアを行います。
今回復元するデータベースの情報は下記とします。
データベース名:dummy_NEW_DB
データベースホスト:dummy_NEW_HOST
データベースユーザ名:dummy_NEW_USER
データベースパスワード:dummy_NEW_PASS
復元するデータベースファイル名:dummy_FILE.sql
リストアの場合、復元するデータベースファイル名がすでにサーバにアップされている必要があります。今回は先ほど「backup」ディレクトリに作成したdummy_FILE.sqlというファイルを、別のデータベースにリストアする方法を記載します。
まずはbackupディレクトリに移動します。
cd backup
次に、MySQL リストアのコマンドを実行します。コマンドは
mysql -uデータベースユーザ名 -pデータベースパスワード -hデータベースホスト データベース名 < 復元するデータベースファイル名
となりますので、今回は下記のように実行します。
mysql -udummy_NEW_USER -pdummy_NEW_PASS -hdummy_NEW_HOST dummy_NEW_DB < dummy_FILE.sql
こちらを実行すると、データベースにファイルがインポートされます。無事にインポートされたかは、PHPMyAdmin等でデータを確認して観てください。
以上でロリポップでSSH接続をし、MySQL dumpとリストアを実行する方法の説明を終わります。お疲れ様でした😀
おまけ:なぜSSH接続を利用したのか。
今回なぜSSHを利用したのかを簡単に。
ロリポップではPHPMyAdminが利用できますので、データのバックアップや復元は基本PHPMyAdminを利用するのが楽かと思います。
しかしながら、今回はデータベースのデータ容量が膨大だったため、PHPMyAdminからだとバックアップはできるが復元が出来ない状況でした。(インポート可能な容量が最大512MiBまで)
そのため、PHPMyAdminではなくSSH接続をしてコマンドラインで行いました。コマンドラインでの作業は慣れないと結構緊張感ありますが、慣れてしまえばPHPMyAdminを利用するよりも早く作業できるようになります。
ぜひ利用してくださいませ。
参考:
読んでいただきありがとうございます。