phpMyAdmin のインポートに失敗した時の対処法まとめ

phpMyAdmin は SQL データを扱うソフトです。エクスポート・インポートができるのでワードプレスの投稿データのバックアップを行う上で非常に便利なソフトです。

ですが!結構使っているとエラーが出て困らせられることが多いんですよね…。私が SQL 詳しくないのが悪いのですが…。

ただ、同じように困っている方もおられると思いますので、そんな方向けに私が遭遇したエラーとその対処法をこのページにまとめておこうと思います。

同じ原因だとは限らないですが、参考にはなると思いますので phpMyAdmin でのインポートエラーで困った時はぜひ読んで見てください。

キーの重複エラー

まずはキーの重複エラーから。

エラーの内容

インポートに失敗した時に下記のようなエラーが出力されます。

#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 サーバーを再起動すると良いと思います。

コメントを残す

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