質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1431閲覧

wordpress.comからのデータ移行で文字化けが発生

mikeross

総合スコア18

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/03/20 09:12

編集2019/03/21 00:08

初めまして、いつも拝見させていただいています。
今回初めてteratailを利用させていただきます。宜しくお願い致します。

前提・実現したいこと

wordpress.com(wordpress.orgではなく)からローカル環境にサイトのコピーをしています。
wordpress.comの環境が一般的なwordpressインストール型の環境ではないということで、
基本的にmysql(またはphpMyAdmin)からダイレクトでバックアップが取れないという制約があります。

従って、今回はAll-in-One WP Migrationという移行プラグインを使用してローカル環境に移行を試みているのですが、
どうも移行先のwordpressでバックアップデータ(〇〇.wpress)をインポートすると、
MySQLのデータの中の日本語のみが???というように文字情報の欠落が起こってしまいます。

色々と調査をしたところ、
移管元と移管先のDB(またはテーブル)で文字コードが異なることで、
文字マップに該当の文字を表現するコードがなければ
???というものになってしまうということでざっくりと理解をしましたが、
どう文字コードを調整してもインポートをすると???となってしまいます。

総当たりで文字コードを1つずつ設定して行くには非常に効率が悪いので、
一応インポート直後(???の状態)のテーブルで、各テーブルの照合順序がlatin1_swedish_ciとなっているのをヒントに、
データベースを作成するタイミングで、データベースのキャラクタセットをlatin1_swedish_ciに設定した上で、
データベースを作成し、再度バックアップデータ(〇〇.wpress)をインポートしてみたのですが、
相変わらず???の状態です。

この場合どのように解決(???を日本語に)すれば宜しいでしょうか。

環境

OS : macOS Mojave
mamp pro : mysql(もしかしたら中身はmariadbかもです)
php : 7.2.14
MySQL : 5.7.25
wordpress.comからはバックアップが取れないため、All-in-One WP Migrationを使用
All-in-One WP Migrationのバックアップデータの拡張子は.wpress
標準のエクスポートでは、simple membershipの情報などが移行できないようです。

各所設定

※現在は上記の環境かなので、あえてlatin1にしています。

mysql> show global variables like "%char%"; +--------------------------+--------------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /Applications/MAMP/Library/share/charsets/ | +--------------------------+--------------------------------------------+ 8 rows in set (0.00 sec)
mysql> SHOW TABLE STATUS FROM 〇〇; +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+ | wp_commentmeta | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 32768 | 0 | 34 | 2019-03-20 17:58:25 | 2019-03-20 17:58:25 | NULL | latin1_swedish_ci | NULL | | | | wp_comments | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 81920 | 0 | 7 | 2019-03-20 17:58:25 | 2019-03-20 17:58:25 | NULL | latin1_swedish_ci | NULL | | | | wp_links | InnoDB | 10 | Dynamic | 10 | 1638 | 16384 | 0 | 16384 | 0 | 11 | 2019-03-20 17:58:25 | 2019-03-20 17:58:25 | NULL | latin1_swedish_ci | NULL | | | | wp_options | InnoDB | 10 | Dynamic | 423 | 697 | 294912 | 0 | 16384 | 0 | 52980 | 2019-03-20 17:58:25 | 2019-03-20 18:00:42 | NULL | latin1_swedish_ci | NULL | | | | wp_postmeta | InnoDB | 10 | Dynamic | 4267 | 372 | 1589248 | 0 | 409600 | 4194304 | 5385 | 2019-03-20 17:58:25 | 2019-03-20 17:58:27 | NULL | latin1_swedish_ci | NULL | | | | wp_posts | InnoDB | 10 | Dynamic | 927 | 2845 | 2637824 | 0 | 344064 | 4194304 | 1098 | 2019-03-20 17:58:27 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_swpm_members_tbl | InnoDB | 10 | Dynamic | 136 | 361 | 49152 | 0 | 0 | 0 | 170 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_swpm_membership_meta_tbl | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 16384 | 0 | 2 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_swpm_membership_tbl | InnoDB | 10 | Dynamic | 3 | 5461 | 16384 | 0 | 0 | 0 | 4 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_swpm_payments_tbl | InnoDB | 10 | Dynamic | 151 | 325 | 49152 | 0 | 0 | 0 | 158 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_term_relationships | InnoDB | 10 | Dynamic | 547 | 89 | 49152 | 0 | 16384 | 0 | NULL | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_term_taxonomy | InnoDB | 10 | Dynamic | 133 | 123 | 16384 | 0 | 32768 | 0 | 134 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_termmeta | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 32768 | 0 | 1 | 2019-03-20 17:58:28 | NULL | NULL | latin1_swedish_ci | NULL | | | | wp_terms | InnoDB | 10 | Dynamic | 133 | 369 | 49152 | 0 | 32768 | 0 | 1488 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL | latin1_swedish_ci | NULL | | | | wp_usermeta | InnoDB | 10 | Dynamic | 2421 | 94 | 229376 | 0 | 229376 | 0 | 3338 | 2019-03-20 17:58:28 | 2019-03-20 17:58:29 | NULL | latin1_swedish_ci | NULL | | | | wp_users | InnoDB | 10 | Dynamic | 133 | 369 | 49152 | 0 | 49152 | 0 | 164 | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL | latin1_swedish_ci | NULL | | | | wp_wpbackitup_job_control | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL | latin1_swedish_ci | NULL | | | | wp_wpbackitup_job_items | InnoDB | 10 | Dynamic | 727 | 202 | 147456 | 0 | 0 | 0 | 728 | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL | latin1_swedish_ci | NULL | | | | wp_wpbackitup_job_tasks | InnoDB | 10 | Dynamic | 26 | 630 | 16384 | 0 | 0 | 0 | 27 | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL | latin1_swedish_ci | NULL | | | | wp_wpmm_subscribers | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | 1 | 2019-03-20 17:58:29 | NULL | NULL | utf8_general_ci | NULL | | | +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+ 20 rows in set (0.01 sec)
# インポート結果 mysql> select post_title from wp_posts limit 5; +------------+ | post_title | +------------+ | ???? | | ?????? | | Home | | ???? | | ????????? | +------------+ 5 rows in set (0.00 sec)

もし、上記以外で回答に必要な情報があれば
お気軽にお申し付けください。
また、試したい提案等もあればおっしゃっていただければこちらで試してみます。

お忙しいところ恐縮ですが、ご教授いただけるよう何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

latin1でしかデータベースを作成できない理由があるのかどうかわかりませんが、
charset類をutf8mb4ってのでデータベースを作り直さない限り、
なんどデータベースを取り込み直してもlatin1じゃ文字化けしますよ。

使用しているプラグインとかよく知らずに回答をつけていますが、
データベースインポート用SQLファイルを作成する類であれば、
それを直接編集してデータベース作成箇所でのエンコーディングをutf8mb4と書き換えれば
解決しそうな気がします。

投稿2019/03/20 09:40

編集2019/03/20 09:42
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikeross

2019/03/21 00:09 編集

早速の回答ありがとうございます。 以下の文を質問文に追記で記載しようと思ったのですが、 弾かれてしまったので、かなり読みづらいかもしれませんが、こちらに記載いたします。 他に試したことを記載します。 上記で「※現在は上記の環境かなので、あえてlatin1にしています。」とありますが、 latin1にした意図としては、①デフォルトの環境が下記のようにUTF-8(utf8の方)となっており、latin1にする前段階でutf8の環境下でも同様に???という文字化けが発生してしまっているという事と、②1度下記の環境下でインポートした直後のデータは、文字コードがlatin1系になっており、mysqldump --default-character-set=utf8でdumpしたsqlファイル内のlatin1をutf8に修正した修正後のデータをインポートしても、改善が見られませんでした。 ①、②のように環境をutf8に合わせたとしても改善が見られなかったので、逆にインポートデータに環境を合わせるという事でlatin1にしておりました。 mysql> show variables like "%char%"; +--------------------------+--------------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /Applications/MAMP/Library/share/charsets/ | +--------------------------+--------------------------------------------+ 8 rows in set (0.00 sec) ちなみに、latin1にする前のテーブル、カラムのキャラクタセットは順に下記のようになっております。 ``` # テーブル mysql> show table status from dbName; +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+ | wp_commentmeta | InnoDB | 10 | Dynamic | 3 | 5461 | 16384 | 0 | 32768 | 0 | 34 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_comments | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 81920 | 0 | 7 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_links | InnoDB | 10 | Dynamic | 10 | 1638 | 16384 | 0 | 16384 | 0 | 11 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_options | InnoDB | 10 | Dynamic | 426 | 461 | 196608 | 0 | 16384 | 0 | 52986 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_postmeta | InnoDB | 10 | Dynamic | 4135 | 384 | 1589248 | 0 | 409600 | 4194304 | 5385 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_posts | InnoDB | 10 | Dynamic | 931 | 2833 | 2637824 | 0 | 344064 | 4194304 | 1098 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_swpm_members_tbl | InnoDB | 10 | Dynamic | 136 | 361 | 49152 | 0 | 0 | 0 | 170 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_swpm_membership_meta_tbl | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 16384 | 0 | 2 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_swpm_membership_tbl | InnoDB | 10 | Dynamic | 3 | 5461 | 16384 | 0 | 0 | 0 | 4 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_swpm_payments_tbl | InnoDB | 10 | Dynamic | 151 | 325 | 49152 | 0 | 0 | 0 | 158 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_term_relationships | InnoDB | 10 | Dynamic | 547 | 89 | 49152 | 0 | 16384 | 0 | NULL | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_term_taxonomy | InnoDB | 10 | Dynamic | 133 | 123 | 16384 | 0 | 32768 | 0 | 134 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_termmeta | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 32768 | 0 | 1 | 2019-03-21 08:48:15 | NULL | NULL | utf8_general_ci | NULL | | | | wp_terms | InnoDB | 10 | Dynamic | 133 | 369 | 49152 | 0 | 32768 | 0 | 1488 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_usermeta | InnoDB | 10 | Dynamic | 2421 | 94 | 229376 | 0 | 229376 | 0 | 3338 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_users | InnoDB | 10 | Dynamic | 133 | 369 | 49152 | 0 | 49152 | 0 | 164 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_wpbackitup_job_control | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_wpbackitup_job_items | InnoDB | 10 | Dynamic | 727 | 202 | 147456 | 0 | 0 | 0 | 728 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_wpbackitup_job_tasks | InnoDB | 10 | Dynamic | 26 | 630 | 16384 | 0 | 0 | 0 | 27 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | | | wp_wpmm_subscribers | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | 1 | 2019-03-21 08:48:15 | NULL | NULL | utf8_general_ci | NULL | | | +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+ 20 rows in set (0.00 sec) ``` ``` # カラム mysql> show full columns from wp_options; +--------------+---------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +--------------+---------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+ | option_id | bigint(20) unsigned | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | | | option_name | varchar(191) | utf8_general_ci | NO | UNI | | | select,insert,update,references | | | option_value | longtext | utf8_general_ci | NO | | NULL | | select,insert,update,references | | | autoload | varchar(20) | utf8_general_ci | NO | | yes | | select,insert,update,references | | +--------------+---------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+ 4 rows in set (0.00 sec) ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問