phpMyAdmin は SQL データを扱うソフトです。エクスポート・インポートができるのでワードプレスの投稿データのバックアップを行う上で非常に便利なソフトです。
ですが!結構使っているとエラーが出て困らせられることが多いんですよね…。私が SQL 詳しくないのが悪いのですが…。
ただ、同じように困っている方もおられると思いますので、そんな方向けに私が遭遇したエラーとその対処法をこのページにまとめておこうと思います。
同じ原因だとは限らないですが、参考にはなると思いますので phpMyAdmin でのインポートエラーで困った時はぜひ読んで見てください。
Contents
キーの重複エラー
まずはキーの重複エラーから。
スポンサーリンク
エラーの内容
インポートに失敗した時に下記のようなエラーが出力されます。
#1062 - Duplicate entry '4' for key 'PRIMARY'
‘4’ の部分は人によって異なると思います。
スポンサーリンク
スポンサーリンク
エラーの原因
おそらくもともとある SQL データベースのデータと、インポートしようとしているデータとでキーが重複していることが原因だと思います。
スポンサーリンク
エラーの対処法
エクスポート時に下記にチェックを入れることで解決することができました。
◻︎挿入前にテーブルを空にする
日本語化されていない場合は下記のように記述されている部分です。ここにチェックを入れれば解決すると思います。
◻︎Truncate table before insert
このチェックを入れてエクスポートしたエータをインポートするとエラーを解決できました。
ただしインポート時に一旦テーブルを空にするオプションのようですので、以前のデータベースを保持したい場合は他の対処法を考える必要があるかもしれません。
プライマリーキーの多重登録
続いてプライマリーキーの多重登録によるエラーについて。
スポンサーリンク
エラーの内容
インポートに失敗した時に下記のようなエラーが出力されます。
Multiple primary key defined
スポンサーリンク
スポンサーリンク
エラーの原因
プライマリーキーを多重で登録しようとしてエラーになっているようです。なぜこんなことが起こっているのかは不明です…。
スポンサーリンク
エラーの対処法
エクスポート時に下記にチェックを入れることで解決することができました。
◻︎DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する 日本語化していない場合は下記のオプションになると思います。
◻︎Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER statement
スポンサーリンク
古いバージョンの構文
古いバージョンの公文を使用しているとエラーになります。
スポンサーリンク
エラーの内容
下記のようなエラーが表示されます。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=InnoDB AUTO_INCREMENT=9386' at line 25
日本語化している場合は下記のような表示になります。
#1064 - SQL構文エラーです。バージョンに対応するマニュアルを参照して正しい構文を確認してください。'TYPE=InnoDB' 付近 6 行目
スポンサーリンク
スポンサーリンク
エラーの原因
古いバージョンの SQL を使用されているのが原因のようです。「TYPE=InnoDB」の書き方は MySQL 5.5 以降のバージョンでは対応していません。
スポンサーリンク
エラーの対処法
「TYPE=InnoDB」の部分を「ENGINE=InnoDB」に置換することでエラーが解消されました。手順としては、
- エクスポートした .sql ファイルをテキストエディタで開く
- 「TYPE=InnoDB」の部分を「ENGINE=InnoDB」に置換する
- ファイルを上書き保存する
この上書き保存したデータをインポートすればエラーは解決するはずです。ただし、文字コードには注意しましょう。
phpMyAdmin ではエクスポートする .sql の文字コードを指定することができますが、デフォルトでは “utf-8” となっています。ですので上書き保存する時は “utf-8” で保存するようにしましょう。
ファイルサイズオーバー
インポートするファイルサイズが大きすぎるとエラーになるようです。
スポンサーリンク
エラーの内容
下記のようにエラーが表示されます。
Incorrect format parameter
スポンサーリンク
スポンサーリンク
エラーの原因
おそらく上記のエラーが発生した場合の原因は色々あるのだと思います。ただしまず疑って欲しいのがインポートするファイルのサイズですね。
インポートできるファイルのサイズには上限があります。
なのでこのサイズの上限を超えるはファイルをアップロードしてインポート実行してもすぐにエラーになってしまいます。
環境によってアップロードできる最大サイズは違うので特に注意が必要だと思います。
スポンサーリンク
エラーの対処法
対処法は2つあります。
まず一つはファイルサイズを減らすことです。まずはファイルを ZIP 形式等に圧縮してみましょう。 .sql サイズの実態は文字列なので、ZIP 形式の圧縮はかなり効果があると思います。
もう一つはアップロードできる最大サイズを大きくすることです。php.ini を編集することでアップロードできる最大サイズを変更することができます。
下記の3つの設定が関係しています。この3つの設定で一番小さいサイズがアップロードできる最大サイズとなるようです。
memory_limit = 128M
post_max_size = 32M
upload_max_filesize = 32M
ですので、この3つの設定値を大きくすることでアップロードできる最大サイズを変更することが可能です。
この3つの設定では memory_limit を一番大きく設定しておく必要があるようです。さらに post_max_size と upload_max_filesize の小さい方のサイズがアップロードできる最大サイズとして採用されるようです(phpMyAdmin のプログラムを読んでみました)。変更しても設定が反映されないようであれば Web サーバーを再起動すると良いと思います。