読者です 読者をやめる 読者になる 読者になる

MySQLデータベースのテーブルがインポートでっきない『Unknown character set: ‘utf8mb4’』エラーの対処方法

ローカルな環境のXAMPPのMySQLのデータベースのテーブルをエクスポートして、XdomainのPHPMySQLサーバーのデータベースに『shopping_db』というデータベースを作成し、ローカル環境のテーブルをインポートした際に起きたエラーです。

ローカル環境のMySQL

下記のように左のサイドバーから『shopping_db』を選択します。

f:id:ts0818:20160104103920j:plain

『shopping_db』のテーブル一覧が表示されたら、『エクスポート』を選択します。

f:id:ts0818:20160104103556j:plain

『実行』を選択すると、SQLファイルがダウンロードされます。

f:id:ts0818:20160104103557j:plain

これを、xdomain側のMySQLデータベースに適当なデータベースを作成し、そのデータベースを選択します。

XdomainのMySQL

f:id:ts0818:20160104105531j:plain

『インポート』を選択します。

f:id:ts0818:20160104105532j:plain

『ファイルを選択』ボタンをクリックし、インポートしたいSQLファイルを選択し、『実行』ボタンをクリックします。 

f:id:ts0818:20160104111136p:plain

そうすると、

Unknown character set: ‘utf8mb4’』というエラーが出てしまいました。 

 

これは、データベースへの保存形式がutf8からutf8mb4に変更されていて、PHP5.6からPHP5.3環境に移行する場合にエラーが出るようです。

結論から言うと、Xdomainのサーバーで使われていたMySQLのバージョンが、ローカルで使っていたMySQLのバージョンより低いのが原因でした。

(※Xdomain側の無料レンタルサーバーPHPのバージョンは、自分で更新しないと旧いままになってます。2016年1月時点では、PHP7も使えるみたいです。)

『サーバー管理パネル PHPMySQLサーバー』>『PHPバージョン切り替え』で設定を切り替えれておくのがベストのようです。

f:id:ts0818:20160105213439j:plain

 

ローカル環境(PHP5.6) ⇒ エクスポートの際、SQLがutf8mb4で保存されてしまう。

Xdomainサーバー(PHP5.3の状態) ⇒ utf8mb4は対応してないようです。

 

解決方法

ローカル環境のMySQLのデータベースからエクスポートしてダウンロードされたSQLファイルを適当なテキストエディター(今回はTeraPadを使用しました。)で開き、『置換』機能を使い、SQLファイル内の『utf8mb4』を『utf8』に全て置換し保存します。

その後、再インポートすればOKです。

 

⇩  データベースにインポートの際に気をつけることは下記サイトへ

WPXから他サーバーに移転した時のDBエクスポート・インポートエラー回避方法。

 

追記

Xdomain側のPHPのバージョンを5.6にあげましたが、PHP5.3の時に作っていたデータベースは、utf8mb4に対応しないようなので、一旦データベースを削除して作りなおすか、インポートするSQLファイル内の『utf8mb4』を『utf8』に置換する必要がありそうです。 

広告を非表示にする