WordPressをSQLiteからMySQLへ移行する方法

WordPressをSQLiteからMySQLへ移行する方法 [2] ブログ

WordPressを、SQLiteからMySQLへ移行する方法を書きます。

移行した理由、やったことを順番に書いていきます。

MySQLに移行した理由

1MySQLに移行した理由

WordPressは本来、MySQLで動きます。

しかし、Wordpress SQLite IntegrationというプラグインでSQLite運用できます。

 

わたしもサーバ代の節約のため、SQLite運用していましたがおすすめしません。

理由は、

  • ウェブで見つかるWordPressの情報がMySQL前提
  • 管理画面が遅い
  • PVが増えるとページ表示が遅い

からです。

 

サイトを作る人は、PVを増やしたい人がほとんどだと思います。

いずれ移行しないといけなくなるなら、始めからMySQLで始めたほうがいいです。

 

移行は、引っ越し並みに手間がかかります。

この記事を読んでもらえば、めちゃ大変そうということが分かると思います。

 

移行の詳細

2移行の詳細

移行前のデータベースはSQLite

サーバはロリポップ(エコノミープラン)。

プラグイン「Wordpress SQLite Integration」を使用していました。

WordPressテーマは、Cocoonです。

移行後のデータベースはMySQL

サーバはロリポップ(ライトプラン)。

同じサーバ内でグレードアップして、MySQLを使えるようにします。

ひつじ
ひつじ

ライトプランでも、月250円です!

 

WordPressのエクスポート

データベースをエクスポートします。

データベースのエクスポート

XMLファイルが得られます。

 

移行前のバックアップ

3バックアップ

WordPressのバックアップ

今回は、プラグインのBackWPupを使いました。

プラグインを使わないバックアップの方法はこちら。

独自ドメインWordPress設定 評価引継は301リダイレクトで
独自ドメインを今使っているWordPressに設定する方法。301リダイレクト設定で今まで集めた評価やアクセスも引継ぎできます。301リダイレクトはSearch Consoleの設定にも必須です。

 

WordPressのバックアップ2

サーバ内でも、別ディレクトリに「WordPress」フォルダのコピー(SQLite版)を作りました。

新しいWordPress(MySQL)で上書きされるかもしれないと思ったからです。

 

実際には、新WordPressフォルダの中身に当たるファイル群がルートに展開。

別の場所にコピーしなくても上書きされないので、余計な心配でした。

 

元のWordPressフォルダのコピーは、FFFTPで作りました。

フォルダを下層へのコピーするのは、こちらの方法でできます。

接続しても何も表示されないときは、ロリポップのFTPアクセス制限をチェック。自分のIPアドレスが追加されていることを確認。

 

WordPressのバックアップ3

元のWordPress(SQLite版)が「WordPress」というフォルダ名でルート(/)にありました。

やりすぎかもしれませんが、元のWordPressフォルダの名前も変えておきました。

ひつじ
ひつじ

これも、必要なかったです・・・

 

テーマの設定のバックアップ

テーマの設定もバックアップしました。

Cocoonの場合は、この画面からできます。

1Cocoonバックアップ

 

その他のバックアップ

移行で、カテゴリとカテゴリのスラッグがうまく引き継がれないことがあります。

そこで、最悪手動で直せるよう、カテゴリ(およびスラッグ)の状態をスクショ

  • メニュー
  • ウィジェット

の状態も、手作業で直せるようにスクショしました。

 

WordPressのインストール

プランを、MySQLが使えるライトプランに変更。

移行先となるWordPress(MySQL版)をインストールします。

WordPressのインストール

「承諾する」にチェック。

「インストール」をクリック。

 

WordPressへインポート

ダッシュボードに入れたら、こちらの方法でインポート。

 

WordPressへインポート

「ツール」⇒「インポート」⇒「WordPress」を選択。

WordPressへインポート2

先ほどエクスポートしておいたデータベース(XMLファイル)を選択します。

添付ファイル

添付ファイルをダウンロードしてインポート」してください。

 

エラー

5エラーが発生

アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。

 

以下、ロリポップでの解決方法。

アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。

設定をクリック。

 

upload_max_filesize

upload_max_filesizeを、大きな値に変えます。

エックスサーバーの場合は、こちらを見てください。

 

エラー2

ファイルが空のようです。中身のあるファイルをアップロードしてください。

エラーが発生しました。

ファイルが空のようです。中身のあるファイルをアップロードしてください。

このエラーはphp.ini ファイルでアップロードができない設定になっているか、post_max_size が upload_max_filesize よりも小さく設定されているために発生している可能性もあります。

このエラーがでましたが、インポートは一部できているようです。

3回やって、

ひつじ
ひつじ

すべて入った!

と思いました。(入ってない)

 

ひつじ
ひつじ

実際は、ここで大量の画像のコピーに失敗

画像のコピーは、後半で書く方法で別に行うことになります。

記事、カテゴリー、タグは移行できました。

 

WordPress設定色々

記事

記事のスラッグに、日付が追加されていました。

パーマリンク設定

パーマリンク設定を「投稿名」に変更。

すべての記事のスラッグから、日付表記が消えました。

 

プラグイン

FFFTPで旧WordPressからプラグインをコピーしました。

「wp-content」の「plugins」というフォルダです。

 

FFFTPエラー

FFFTPエラー

「ダウンロードできませんでした」

がでます。

1度にコピーするファイル数が多いと出る様子。

少しずつコピーしました。

ちゃんとした解決方法は後半で。

calculated fields form

calculated fields formという計算フォームを記事に貼るプラグインのデータが無くなりました。

必死に作った計算フォームが消えたということです。

データ持ち出しは有料らしいです。

ひつじ
ひつじ

これに伴って、1記事消しました。

 

All in one SEO

プラグインAll in one SEO のサイトマップが設定初期に。

現在noindexになっているURLまで、Search Consoleに送られました。

 

後日、

送信されたURLにnoindexタグが追加されています

がSearch Consoleで大量発生。

12送信されたURLにnoindexタグが追加されています

noindexになっているURLについては送信しないよう、All in one SEOで設定すればOKです。

 

BackupUp

WordPressをバックアップするプラグイン。

試しに回すとエラーがでました。

こちらの記事で解決。

 

テーマ

Cocoonフォルダを、FFFTPでコピーしました。

ひつじ
ひつじ

吹き出しデータが引き継げるかも

と、旧WordPressからコピーしましたが、ダメでした。

 

既に記事に貼った吹き出しは、ちゃんと表示されています。

 

事前にエクスポートした、Cocoonの設定ファイルを入力します。

Cocoonリストア

今度は、リストアの方です。

 

Cocoonの場合はこれで、

  • Google アナリティクス
  • Search Console
  • Google AdSense

との連携が復活します。

 

その他の設定

カテゴリー

親子関係が消えていました。

手作業で修正。

プラグイン、Taxonomy Orderで順序も修正。

ウィジェット・メニュー

取っておいたスクショを頼りにウィジェット・メニューを再表示。

メニューは、同じデータが2重に入っていました。

ひつじ
ひつじ

多分3回インポートしたせいです。

ウィジェットは、最初から設定しなおしです。

Favicon

サイトを開いたときのタブに表示されるアイコン。

こちらの方法で再設定しました。

サブタイトル

サイトのサブタイトルを再設定。

「設定」→「一般」。

プロフィール・SNS情報

プロフィールも消えています。

SNSの情報も再設定。

「ユーザー」→「あなたのプロフィール」。

投稿SNS設定

記事を公開したときに、自動でSNSに投稿する設定。

「設定」→「共有」

セキュリティ関連

まず、こちらの記事の設定でログインIDを隠したりしました。

その他、

  • WordPressのパスワードを複雑化
  • プラグインでログイン試行回数制限(Login LockDown)
  • レンタルサーバのパスワード複雑化
  • htaccessを設置してサーバ上のファイルへのアクセス制限

などもついでに行いました。

 

画像が移行失敗

画像が移行失敗

ここでやっと、画像が消えている記事が大量にあることに気付きました。

Broken Link Checkerで、切れているリンクがないか調べて発覚。

もう、いろいろ設定しちゃったので、インポートからやり直したくない。

 

画像だけを、手作業で移行することにしました。

闇雲に、丸1日画像を貼りなおしたりしたのですが、終わりません。

ひつじ
ひつじ

アホでした・・・

 

一旦立ち止まって調べると、起きていることは、

  1. 画像が新しいWordPressフォルダにコピーされていない
  2. 記事内の画像リンクのURLが間違っている

の2パターンのどちらか。

もしくは両方でした。

 

画像がコピーされていない

FFFTPで、新しいWordPressフォルダに旧フォルダからコピーします。

ここでまた食らったのが、これ。

FFFTPエラー

今回は、

ひつじ
ひつじ

ちょっとずつ分けて・・・

などと言っていられる量ではなかったので、Google先生に質問。

FFFTPで頻繁に起きるファイル転送エラーを回避する方法 | WordPress引っ越しマニュアル
FFFTPで大量のファイルを転送していると必ず止まるという現象が起きていました。これは非常に作業効率を落としますので、回避方法を調査しました。その全てをここで説明しています。

こちらの記事がヒット。

 

FFFTPで、

「高度」タブをクリックします。

設定項目のうち、「可能であればMLSDコマンドで一覧を取得」のチェックを外します。

続いて「暗号化」タブをクリックします。

ここでは、「暗号化なしで接続を許可」のみチェックを入れた状態にします。

これで、画像のコピーはできました。

 

記事内の画像リンクが間違っている

こちらは、

「https://baacash.com/wp-content/uploads/2018/07/file.png」

となるべきところ、

「https://baacash.com/wordpress/wp-content/uploads/2018/07/file.png」

となっていました。

 

これは、Search Regexというプラグインで一気に書き換えできます。

すべての

「https://baacash.com/wordpress/wp-content/」

「https://baacash.com/wp-content/」

へ書き換え。

これやっと、画像もちゃんと表示されるようになりました。

 

SQLiteからMySQLへ移行する方法

WordPress SQLite Integrationで、サーバ代を節約できます。

でも、PVが増えたら移行しないといけません。

移行は上記の通り、大変。

最初からMySQLを使うことをおすすめします。

 

ブログを書く時間がない!

そんな忙しいあなたに、仕事中にブログを書くという選択肢。

絶対にばれない方法です。

まだ副業してないの?仕事中にばれない副業。副業禁止は違法です
仕事中にこっそり副業できる副業。仕事中の副業は自席ではきびしい。おすすめするのは、トイレでスマホを使って副業すること。絶対ばれないです。半休1回分、副業に使える時間が増えます。Twitterだって、使い方次第で立派な副業になります。

コメント