WordPressで作成されてるサイトをSovaからコアサーバーにドメイン乗せ換えしたんですが、久しぶりにハマってしまいました。
『実行した SQL:
/*!40101 SET NAMES utf8mb4 */;
#1115 – Unknown character set: ‘utf8mb4’』
のエラー。。。
エクスポート側サーバ:utf8mb4に対応したVer.5.3.3以降のMySQL
インポート側:utf8mb4に対応していないVer.5.3.3以前のMySQL
新サイトのWordpressにログインしても過去記事ゼロなので、仕方ないので標準プラグインのエクスポート・インポートで対処
※SovaのWPは接頭語が『sv_』、普通は『wp_』なので、これはSQLのコマンド画面で『ALTER TABLE sv_ratings RENAME TO wp_ratings;』にて対応。
↓
・『Duplicator』のファイル内で新旧ドメインの変更・『utf8mb4』を『utf8』に置換・文字コードの変更
・sqlファイル内の新旧ドメインの変更・『utf8mb4』を『utf8』に置換・文字コードの変更
等。いろいろ試して、何度もデータベースの削除・再作成/WPの作成・失敗・削除を繰り返しました。
カスタムフィールドA:値『3』
カスタムフィールドA:値『0』
カスタムフィールドB:値『0』
カスタムフィールドC:値『0』
一括置換・一括削除で対応したかったのですが、ABCの値はそれぞれの記事で違うので一括対応は無理だったので、値がゼロのカスタムフィールド3つをちまちま手動で削除したら、『とあるプラグインでのコンテンツ表示』も正常表示になりました。
↓
※SovaのWPは接頭語が『sv_』、普通は『wp_』なので、これはSQLのコマンド画面で『ALTER TABLE sv_ratings RENAME TO wp_ratings;』にて対応。
Wordpressのプラグイン『Duplicator』でサイト移転を試してみましたが、エラーでダメ。
↓
旧サイトのPhpMyAdminにて、『DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する』をチェックONでエクスポート
↓
新サイトのPhpMyAdminにてインポートしようとすると
『実行した SQL:
/*!40101 SET NAMES utf8mb4 */;
MySQLのメッセージ:
#1115 – Unknown character set: ‘utf8mb4’』
のエラー。。。
↓
ググッて調べたら
エクスポート側サーバ:utf8mb4に対応したVer.5.3.3以降のMySQL
インポート側:utf8mb4に対応していないVer.5.3.3以前のMySQL
↓
エクスポートしたsqlファイルをファイラで開いて『utf8mb4』を『utf8』に置換してインポートすればOKらしいのでそうしましたが、
新サイトのWordpressにログインしても過去記事ゼロなので、仕方ないので標準プラグインのエクスポート・インポートで対処
↓
とあるプラグインでのコンテンツ表示がおかしい(項目が2重表示)
とりあえず『とあるプラグインでのコンテンツ表示』以外は正常になりましたが、『とあるプラグインでのコンテンツ表示』を直さないといけない。。。
仕方ないので、またWP・データベースを削除して、SQLの『とあるプラグイン』のデータ部分だけエクスポート・インポート
※SovaのWPは接頭語が『sv_』、普通は『wp_』なので、これはSQLのコマンド画面で『ALTER TABLE sv_ratings RENAME TO wp_ratings;』にて対応。
↓
それ以外はWP標準プラグインでエクスポート・インポート
この時点までに、
・『Duplicator』のファイル内で新旧ドメインの変更・『utf8mb4』を『utf8』に置換・文字コードの変更
・sqlファイル内の新旧ドメインの変更・『utf8mb4』を『utf8』に置換・文字コードの変更
等。いろいろ試して、何度もデータベースの削除・再作成/WPの作成・失敗・削除を繰り返しました。
●この時点で問題発生
このプラグインのデータSQLに格納されてて、それと同時に各記事にカスタムフィールド3つあることに気付きましたが、正常に表示できない記事はカスタムフィールドが6つ(同じ項目がそれぞれ重複&うち3つは値がゼロ)なことに気づきました。
例えば、
カスタムフィールドA:値『3』
カスタムフィールドA:値『0』
カスタムフィールドB:値『43』
カスタムフィールドB:値『0』
カスタムフィールドC:値『128』
カスタムフィールドC:値『0』
この値『0』の項目が同じカスタムフィールド名で重複して存在してるので、『とあるプラグインでのコンテンツ表示』がおかしくなっていることが判明しました。
●とりあえず解決
一括置換・一括削除で対応したかったのですが、ABCの値はそれぞれの記事で違うので一括対応は無理だったので、値がゼロのカスタムフィールド3つをちまちま手動で削除したら、『とあるプラグインでのコンテンツ表示』も正常表示になりました。
●これがいけなかったのか?
↓
※SovaのWPは接頭語が『sv_』、普通は『wp_』なので、これはSQLのコマンド画面で『ALTER TABLE sv_ratings RENAME TO wp_ratings;』にて対応。
次回のために簡単な方法を模索中です。。。