ロリポップの旧DBサーバーから新DBサーバーに512MiB以上のデータを移管する方法について【WordPress】
記事作成日:2024年8月15日
タイトルにもある通り、当ブログはロリポップのレンタルサーバーを使っています。
サーバーの契約自体は15年以上前、本ブログを開設してからは10年が経過したのですが、今までWordpressやPHPのバージョンアップはしていてもMySQLのバージョンアップはしていませんでした。
「そのうちやろう」で放置していたら数年前からMySQLのバージョンが古いせいでWordpressのバージョンアップが出来なくなり、流石にそろそろやらないと良くないなと思ったので、重い腰を上げてアップデートをする事にしました。
まず、コントロールパネル上からデータベースを新しく作ります。
既に存在するデータベースのMySQLバージョンを上げる事は出来ないので、新しく作る必要があります。
全然意識してなかったんですが、元々MySQL 5.1とか使ってたんですね…。(10年位前にプロダクトライフサイクルが終了しているバージョン)
恐らくロリポップサーバー契約時の初期バージョンのままだと思います。
新しいデータベースが作れたら、次にphpMyAdmin上からSQLファイルをエクスポートしてインポートをすれば良いだけなのですが、いかんせん10年も運用し続けてるブログの容量はかなり大きいです。
ロリポップ側で用意しているphpMyAdminはエクスポートの容量上限はありませんがインポートに関しては512MiBまでのサイズにしか対応していません。
エクスポートしたSQLファイルの容量は906.3MB(864.31503MiB)だったので、ロリポップサーバーのphpMyAdminは使えませんでした。
ちなみに環境によってはphp.iniを弄ってアップロード上限を増やして解決する事も出来ますが、レンタルサーバーだと大抵の場合は無理じゃないですかね…。
ではどうするのかと言うと、サーバーにSSH接続を行いmysqlコマンドを実行する必要があります。
昔はSSHもといコマンドを毛嫌いしてたんですが、最近は仕事で触る機会も増えているので割と日常的に使うツールと化しています…。
という訳で、まずはコントロールパネル上からSSH接続を有効化させます。
基本的に普段からSSHを使わないなら、SSHは無効化させておいて良いと思います。
自分は今回初めてロリポップのSSH接続設定を行いました。
ロリポップのSSHはパスワード認証(パスワードはSSH有効時に自動設定される物を使用する形で任意の物に変更する事は出来ない)で行われます。
基本的に使わない時は無効化しておいた方が良い気がします。
もっとも、SSH接続出来るとは言ってもsuコマンドも使えずシステムディレクトリ類の閲覧も出来ないので、そこまで気にする必要は無いと思いますが…。
ただ、php.iniが弄れちゃうので、FTP以上のリスクがあるとしたらそこ位かな…?
SSH接続が出来るようになったら、とりあえずエクスポートしたSQLファイルをFTPでアップロードします。
FTPを使ってるのは単純にこっちの方が使い慣れてるからです。
その後、SSHでファイルを確認します。
尚、この「SSHでファイルを確認する」工程は必須では無いですが、とりあえず接続確認がてらやっておいた感じです。
SSH接続が問題無く行える事が確認出来たので、次はmysqlへの接続を試みます。
ロリポップのDBサーバーはWebサーバーとは異なる所に置かれているので、ホストを指定した上で繋ぎます。
$ mysql -h [ホスト名] -u [ユーザー名] -p
コマンド実行後、パスワードが聞かれるのでmysqlのパスワードを入力するとmysqlに接続出来ます。
念の為show databases;コマンドでちゃんと新しく作ったDBに接続出来ている事を確認します。
その後、データベースに繋ぎ、sqlファイルをインポートします。
mysql> use [データベース名];
mysql> source [フルパス+sqlファイル名];
ちなみに、こういう確認作業をすっ飛ばしていきなりインポートするなら、SSHに繋いだ後でこのコマンドで良いです。
使い慣れてる環境ならこれでも良いと思います。
$ mysql -h [ホスト名] -u [ユーザー名] -p [データベース名] > [sqlファイル名]
このコマンドを実行する事でインポート作業が行われます。
1GB近くあるファイルですが、割とすぐに実行は完了しました。(分かりやすいようにphpMyAdminの画面も乗せておきます)
最後にwp-config.phpで指定されている定数、DB_NAME、DB_USER、DB_PASSWORD、DB_HOSTの値を新データベースの内容に変更後、ページの動作確認を行って問題無い事を確認したら新DBへの移管作業は完了です。
ちなみに、自分が使っているSSHクライアントソフトは『Termius』というmacOS用のソフトです。
普段仕事でも使ってるソフトで、色々試したmacOS用のSSHクライアントの中では一番多機能で使いやすかったので愛用しています。
基本無料で使えますが、全ての機能を使うには年額13000円もするので趣味で使うには高価過ぎるソフトですが、今回の作業程度であれば無料版で問題無いと思います。
ちなみに昔は無料で使えるPoderosaを使っていました。(Poderosaもスマートでは無いけど普通に使いやすかった)
という訳で、ロリポップの旧DBサーバーから新DBサーバーに512MiB以上のデータを移管する方法について書いてみました。
こういうネタやるのも久しぶりですね…。