sg

WordPressのデータベース移動でトラブルが発生した – MySQLバージョンの問題

はじめに

ローカルで構築したWordPressのデータベースをリモートサーバのMySQLに移動しようとしたところエラーがでて移動できなかった。解決方法を見出したので報告する。

環境

ローカル

OS: Ubuntu 18.04.1 LTS

PHP: PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02)

MySQL: Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)

リモート

OS: CentOS release 6.4 (Final)

PHP: PHP 5.4.14 (cli) (built: Apr 11 2013 11:04:32)

MySQL: Server version: 5.5.30 MySQL Community Server (GPL) by Remi

トラブル発生の経緯

ローカル環境で、MySQLからデータベースのダンプデータを取得する。

(ローカル)$sudo mysqldump -u root -p (DB名) > /home/tmp_dbdata.dump

tmp_dbdata.dumpをリモートサーバーにアップロードしておく。

あらかじめ、mysqlにログインして、受け入れ用のデータベースを作っておく。

(リモート)# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 890301
Server version: 5.5.30 MySQL Community Server (GPL) by Remi
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database (DB名);
Query OK, 1 row affected (0.00 sec)

mysql>
[1]+ Stopped mysql -u root -p

アップロードしたダンプデータを先ほど作成したデータベースに流し込めば作業終了するはず!!

(リモート)# mysql -u root -p (DB名) < tmp_dbdata.dump
Enter password:
ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_unicode_520_ci'

いわく、utf8mb4_unicode_520_ciなんでcollationはしらないよ!と。
ネットで調べると、utf8mb4_unicode_520_ciはMYSQL 5.6以上でのサポートらしく、ギリギリアウトということが原因だったよう。

対応策

テキストエディタでtmp_dbdata.dumpを開き次の2つの置換を行う。

utf8mb4_unicode_520_ci → utf8_general_ci
utf8mb4 → utf8

.そして修正したダンプデータを流し込む。

(リモート)# mysql -u root -p (DB名) < tmp_dbdata.dump

成功した。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です