【画像あり】⭐️データベースの移行編⭐️エックスサーバーからのサーバー移行の方法とトラブル対処法〜
エックスサーバーで運営しているブログやサイトを他のサーバーへ移行する際、ドメイン移管や新しいドメインの設定が必要になることがあります。
業者に頼むと数万円かかるケースもありますが、自分でやれば費用を抑えることが可能です。
プラグインやサーバーからの簡単移行機能を使うことが推奨されていますが、私のように後でやろうと思ったら旧サーバーの契約が切れていたり、プラグインや簡単移行がうまくいかなかった人も少なくないと思います。
また、私がやったやり方は、新しくドメインを作った人も移管した人もどちらも同じ手順でできるでしょう。
今回は、私自身がサーバー移行を行った際の手順と、実際に起こったトラブルおよびその解決策をご紹介します。
機械音痴の私でもできたので、PCに詳しくない方でも対応可能な方法だと思うので紹介させていただきます!全く同じ仕様の、エックスサーバーからシンサーバーへの移行なので、逆の方も対応できると思います。
※エックスサーバーとシンサーバー以外の方には該当しなかったらごめんなさい!
サーバー移行の全体的な流れ
- 現在のサーバーからデータをバックアップする
- 新しいサーバーにドメインを設定する
- データを新しいサーバーに移行する
- ドメインの移管(または新しいドメインの取得と設定)
- 動作確認と最終調整
これがサーバー移行の流れです。終わってみれば単純な作業なのですが、躓くと焦りますよね笑
今回はデータベースの移行について重点的に解説をします。
1. 現在のサーバーからデータをバックアップ
エックスサーバーの管理画面でデータをバックアップします。
特に重要なのは以下の2つです。この2つをダウンロード&インポートさせれば別のアドレスやサーバーの内容をほぼそのままもってこれます!
- ファイルデータ: WordPressを利用している場合、wp-contentフォルダを含むすべてのファイル。この中のwp-config.phpの情報をダウンロード後に書き換えます。
- データベース: phpMyAdminを使ってエクスポートします。
今回は後者のデータベースの移行を説明します。
phpMyAdminを使ったデータベースのエクスポート手順
- エックスサーバーの管理画面からphpMyAdminを開きます。
- 該当するデータベースを選択(自分のHPのデータベース)←表示されていない場合がある
- 「エクスポート」タブをクリックし、「SQL形式」でエクスポート。
※自分のデータベースの出し方は別記事参照
画像付きで解説します⇩
1.エックスサーバーにログインしたらphpMyAdminを開きます⇩
全メニューからでも良いのですが、①データベースの中の②phpmyadminをクリックしてください。そうすると、Phpmyadminにログインできます。
(ここでログインできない人は別記事参照)
2.該当するデータベースを選択します
赤で丸をしたところに自分のサイトのデータベースが出てくるので、取り出したい(エクスポートしたい)サイトのデータベースを選択します。
3.「エクスポート」タブをクリックし、「SQL形式」でエクスポート
私の場合は1つだけあったので、①の自分のサイトを選択して上の方にある②エクスポートボタンを押します。そのすぐ下のボックスに簡易と詳細がのエクスポート方法の選択があるので③詳細を押します。
フォーマットの下のボックスのテーブルのファイルに全てチェックが入っているのを確認したら、④スクロールして一番下の方までおります。
下に来ると、エクスポートという四角があるので、これを押します。
基本的には、詳しくない限りまずは上で押してもらった「詳細」以外の選択はデフォルトの状態で書き出してみてください。一番エラーの起こりにくい選択が選ばれているはずです。
うまくエクスポートできるとこのようなファイル名で書き出されます。色が変わってしまっているのは、こちらを開くソフトを使用してしまったからなので、見た目は違うと思いますが
〇〇○(ご自身のデータベース名).splというデータベースが出てきたらOKです!私の場合はデフォルトのサーバー名にデフォルトで割り振られていた○○○○_wp4.splというファイルでした。赤字の部分は最初に選択したエクスポートしたいサイトのデータベース名と同じです。
もし別の名前だったら間違っているので、取り出したいデータベース名で再度エクスポートしなおしてください。いくつもサイトがあると間違えてしまうこともあります。
ちなみに私はここで表示されていなかったのでかなり苦戦しました笑
Visual Studio Code
余談ですが、このファイルをVisual Studio Code(私もこれで中を見ました)などのソフトで中を見ることができるので、データがちゃんと残っているのかも確認ができます。(ソフトがないと中を見れません)
2. 新しいサーバーにドメインを設定する
次に、新しいサーバーに移行するためのドメイン設定を行います。ドメインの移管も新しくするのも、データを移すにあたって大きな違いはないので、どちらでも大丈夫です。
既存ドメインを移管する場合と、新しいドメインを取得する場合で手順が異なりますが、ドメイン設定は話がズレるので今回は割愛しますが。ちなみに、私はドメインを移管しました。
移管すればデータも移しておいてもらえるものだと(平和ボケ)思っていたので、サーバーが切れるまで何もしなかったら、移管は終わり、簡単移行やプラグインが使えなくなってしまっていて手動でやるか、もう一度3ヶ月分支払って簡単移行するか悩んだのですが、こんな機会でもないと学習しないので、まずは自分で頑張ってみることにしました。
移管はサーバーに指示が書いてあるのでそちらに従ってください。
ドメイン移管の手順
- 移管したいドメインのAuthコード(認証コード)を取得。
- 新しいサーバーのドメイン移管設定画面でAuthコードを入力。
- 移管が完了するまで数日かかる場合があります。
シンサーバーは赤で囲ったところのドメイン移管から手続きができます!これはエックスサーバーも同じです!
移管の時のロックの外し方など詳しい話はまた長くなるので別記事で!
新しいドメインを取得する場合
- 新しいサーバーでドメイン取得サービスを利用します。
- DNS設定を新サーバーに合わせて変更します。
移管よりも難しいかなと思うかもしれませんが、実は、私が紹介するやり方でデータの移行が可能です。
サーバー上の手続きやプラグインでうまくいかなかったときはぜひ私がやった方法でやってみてください。
3. データを新しいサーバーに移行
バックアップしたデータを新しいサーバーにアップロードします。最近はFTPソフトを使わずに、サーバーの管理画面から直接アップロードが可能な場合も多いです。
私は、まさにFTPソフトは使用せず(正確には難しくて使えなかった笑)データの移行に成功しました。
新しい方のサーバーにデータベースのインポート
ここは、ログインできてしまえば、あとは淡々と間違えずにやるだけです!終わってみれば、なんだよーーって感じの単純作業です!説明は長くなります。
- 新規データベースを作成
- 新しいサーバーのphpMyAdminにログイン
- 「インポート」タブからエクスポートしたSQLファイルをアップロード
1.新規データベースを作成
データベースの追加
メニューのデータベース→MySQL設定を開きます。
そしたら黄色で囲ったMySQL設定の下の、赤で囲ったデータベースを追加を押します。
データベースを追加を押すと、このような画面になります。
MySQLデータベース名とかいてある横の黒塗りしてある部分は、サーバーのIDが書いてあります。
そのサーバーの名前の後に続く部分を自分で設定できるので好きなものを設定してください。しかし文字数制限があるので私は1とだけ入れました笑
そうすると、新しく「〇〇○○_1」というデータベースが作成されました。(一番下になってしまった)
既存のサイトは「WordPress利用中」と書いてありますが、まだWordPressをダウンロードしていないので何も書いていません。それでOKです!
ユーザー設定
このままではまだ必要な情報の登録が足りません。アクセス権所有者ユーザーが空欄になっているので登録します。
最初にエクスポートした時と同じ手順での登録です。
アクセス権所有者ユーザーの名前もなんでも良いのですが、wp-config.phpにデータベース情報を入れるときに同じ方がめんどくさくないので、私は同じにしました。
ちょっと見にくいのですが、一番右の列のユーザー設定を押してください。
ユーザー設定を押すと、こんな画面が出てきます。
やはり現在、アクセス権所有ユーザーはありません。とのことなので、その上のユーザーを追加からユーザーを登録しましょう。
新しくMySQLユーザーを作成の方をクリックして、MySQLユーザーIDを先ほど決めたデータベース名と同じ名前を入れます。(違っても問題はありません。入力の手間が一つ増えるというだけなのです)
MySQLユーザーIDとその下のパスワード(好きなものを入れてください。)を入力し右下の追加するを押してください。重複しますが、この2つ(ユーザー名を変えた人は3つ)は
wp-config.phpに入れるので後で開くのが面倒な場合は、メモにでも入れておきましょう。
私はデータベース名を1と入れたので、MySQLユーザーIDも同じく1を入れました。
無事にデータベース名とデータベースのユーザー名の登録ができました。
2.phpMyAdminにログイン
上で決めたデータベース名とユーザー名を使って、始めにデータをインポートした時と同じ手順でphpMyAdminにログインします。
先ほど決めたユーザー名とパスワードを入力します。
ここで万が一ログインできなかったら、ユーザー名をもう一つ増やしてパスワードの設定もして見てください。もしかしたらパスワードを間違えたとか何かあるかもしれないので、まずは間違えにくいもので設定して、後で複雑なパスワードに変更するのもありですね。
3.「インポート」タブからエクスポートしたSQLファイルをアップロード
ログインしたら、最初にダウンロードした時と同じ画面が出てきます。赤で囲った部分に、先ほど決めたデータベース名が出ているので、そちらをクリックします。
もしも出ていなければ、上の手順をすっ飛ばしてる可能性があるので、上で説明した新規データベース作成を見ながら作って見てください。
ということで、さっき作った○○○○_1がないとこんな感じで、表示されていません。
うまく作れていてログインできると、きちんと左側に表示されています。_1しか見えてなくてわかりにくいかもしれませんが、、、セキュリティ上すみません。
そして、インポートを押しましょう。
もう少しです!
インポート画面はこんな感じになっています。
ファイルを選択からsqlのデータベースをアップロードしましょう。
これでデータベースの移行は終了です。別記事で、ファイルデータのインポートとアップロードを解説しますのでそちらもよかったらご覧ください⭐️
今回でたエラーと対処法
稀にサイズオーバーをするとエラーが出る場合があるようですが、私はそれは大丈夫でした。
その代わりに、いくつか初歩的なミスでエラーが出たので紹介します。
phpMyAdminへ、インポートができない時は本当に焦りました笑
このエラーは調べてもほとんど出てこず、途方に暮れたのですが、もしかしたらこんなミスする人がいないからなのかもしれないと思いつつも、残しておこうと思います。笑
データベースを選択しなかった(#1046)
初歩的というか、初心者って感じのミスですよね笑
左のデータベースを選択しなかったので、どこのデータにアップロードすれば良いのかphpMyAdminが困ったのでしょう。
#1046-データベースが選択されていません。
と言われてしまいました笑
対処法:データベースの名前をクリックしてからアップロードする
説明するまでもないですねw
自動上書きはされなかった(#1050)
最近のスマホやPCのソフトは本当に優秀なので、「自動でなんでも上書きしてくれるもの」だとすっかり勘違いしていました。
私は、今回WordPressは手動インストールではなく新規インストールをしてそこに後付けでファイルをつけたので、データベースにフォルダが作られてしまっていたんです。中身はほとんど空なんで、上書きできるのかと勝手に勘違いしていました。
このエラーが出た人が、私のようにずらっと中にフォルダが入ってしまっている人はもしかしたらこれが原因かもしれません。
上書きができないので、消してからアップロードしてよ!ってことだったようです。
これは調べても、難しそうなものしか出てこなかったのですが、単純に、すでに同じファイル名があるからアップロードできないだけでした。
青枠の中にこれだけファイルがあるんですもん。今思えばアップロードできなくて当然でした。ちなみに、1つでもかぶっているものがあればアップロードできません。
名前を変更するか、全消ししてから入れれば大丈夫です。場合によっては、すでに重要な記事があるときなんかは、記事を後で投稿し直すとかして、移行ファイルを入れてしまった方が早い気もします。
対処法
サーバーの中身を全て消しましょう。
まだ作りたての場合は、全消しして大丈夫なので⇩のように
テーブルの下の「すべてチェックする」にレ点を入れて削除ボタンを押しましょう。(バックアップは取っておいてくださいね)
そうすると、データベース名をクリックしてもなんのフォルダも出なくなるので、そうしたらアップロードして見てください。
数分後に「インポートは正常に終了しました。325個のクエリを実行しました。(ファイル名.spl)」というメッセージが現れ、HPがちゃんと表示されて移行完了できました!!!!
違うデータベースに、違うファイルをアップロードしていた
まだ手動でデータを読み込んでWordPressをダウンロードしようと頑張っていたときは、データベースにWordPressが紐ついていなかったのですが
最初にエラーが出たときも#1050でした。
移行したいデータベースにファイルをアップロードしたかったのですが、左のバーに表示されていなかったので
「きっとここに入れれば大丈夫🙆」
という謎の自信とともに、3日間アップロードしようとトライしていました。笑
途中で「なんで別のサイトの記事データしか入っていないんだろう?」と気がついて、まさかと思いよく見たら
別のブログのデータベース
でログインしていました🤭
しかもよく見たら、元のサーバーからダウンロード(エクスポート)していたファイルも、別のブログのものでした笑
対処法
移行したいサイトのデータベースなのか、よく確認してください(笑)
初めてそのサイトのphpMyAdminにアクセスする場合、パスワードの設定をしていない場合もあるのでパスワードの設定をしてログインして見てください。
もしもログインできない場合は、同じデータベースのところにユーザーを追加してみてください。
追加ができるので、追加するとこんな感じで、ユーザーが二段になって追加されました!
調べるとみなさんnewってやってるので私もわかりやすくnewにしていますが、なんでもいいと思います!
この時に作った名前とパスワードを入力するとhohMyAdminに入れます。
例えば、データベース名が1234_1だった場合、1234_new と、このときに決めたパスワードでも入れるってことです!
このほかにも色々とエラーは出るようなのですが、落ち着いて考えれば解決できることが多いのかなと、今回私が自分でエラーと向き合ってみて思ったことでした!
4. 動作確認とトラブル対処
よくあるトラブルと解決策
- データベース接続エラーが発生
- wp-config.php内のデータベース情報が正しいか確認(データベース名、ユーザー名、パスワード)←別記事で解説
- サーバーのホスト名も新しいサーバーのものに変更。
- 画像やリンクが正しく表示されない
- サイトURLを変更した場合、WordPressの管理画面で「一般設定」から新しいURLを設定。
- プラグイン「Search Replace DB」を使って、データベース内のURLを一括置換。
私もこれでエラーになったことがあります。ここはあってても間違っていても関係なく、任意のアドレスを打ち込めるので、間違っているからといって勝手に修正してくれません。なので、変更を押した瞬間サイトが消えることもwwww
- SSL設定が反映されない
- 新サーバーでSSL証明書を有効化し、URLをHTTPSに変更。
5. サイトの最終調整
すべてのデータ移行が完了したら、以下をチェックしましょう
- ページの表示速度やリンク切れの確認。
- Google Search Consoleでサイトマップを再送信。
- ブラウザキャッシュをクリアして、動作確認。
おそらく大体は移行できていると思います!私は、もう移行できないかもしれないとまで腹を括っていたので、多少間違っていようが、記事があればいいやと思っています笑
でも今のところ、サイトの配置から何から何まですべて元通りです!
ちなみに、6年間アップデートも何もほとんどしなかったサーバーからの移管でしたがさすがエックスサーバーだけあって、自動でアップデートしてくれていたので、データ自体に問題は見つかりませんでした!
自分でやってよかったこと
今回の作業を通じて、ワードプレスなら業者に頼む必要がないかなと思います。
確かに手間はかかりますが、自分でやることでサイト構造やデータ管理に詳しくなれるというメリットもあります。
また、FTPソフトを使わずに管理画面から移行できるので、初心者でも十分対応可能です。このことは別記事で解説したいと思います!
おわりに
エックスサーバーからの移行は、初めてだと難しく感じるかもしれませんが、基本的な手順を抑えれば自分で十分対応できます。
今回ご紹介した方法を参考に、費用を抑えつつスムーズな移行ができるように祈っています⭐️
長くなりましたが、読んでいただいてありがとうございました!