インターネット

【サーバ移転】phpMyAdminで#1064エラーになる場合の対処

投稿日:

この記事はWordPress移転などで1064エラーが生じて、データベースが移行できない場合の解決方法を紹介しています。

こんにちは。WordPressを10年以上使っているアメンボです。先日、WordPressを使ったブログのサーバ移転を行いましたが、移転の際1064エラーが生じ、移転に時間がかかったのでその際の備忘録も兼ね記事にします。

1064エラーとは

1064エラーはネットで検索すると、データベース(SQL)の構文エラーのようです。データベースを作成する際に、SQLに沿った文書を打っていくのですが、その際に区切り記号などのエラーがあった場合に発生するようです。

1064エラーの解決

単純にコマンドラインからデータベース操作をしている場合は、構文を再確認して修正すれば大丈夫です。ところが、サーバ移転にともなうエラーの場合、どこにエラーがあるのかを特定するのに非常に時間がかかってしまいます。そこで、この記事では1064エラーが生じた際の、解決案をいくつか提供します。

データベースを移転する際に1064エラーが生じた場合、構文エラーの可能性は低いです。そもそも、もともとのサーバで問題なくデータベースが動いているのに、エクスポート&インポートをしようとすると、エラーが生じるのは構文以外のエラーを疑うべきです。ネットを使って調べると、様々な解決方法が見つかりました。

MySQLのバージョンが違う

移転元のMySQLのバージョンが新しく、移転先のMySQLが古い場合に構文エラーが生じることがあるようです。例えばMySQL 5.7を使っているサーバからMySQL5.5を使用しているサーバへ移転しようとした場合などに生じます。この場合は移転先サーバのMySQLを最新のものにして再度インポートを実行しましょう。

エクスポート設定を変える

phpMyAdminを使ってデータベースをエクスポートする場合、通常はデフォルトの設定(設定を変更しない)でも問題ありません。しかし、1064エラーが生じる場合はエクスポート設定を見直してみると解決する場合があるようです。

エクスポートする際の生成オプションで「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT /TRIGGER コマンドを追加する」にチェックを入れて再度エクスポートしてみましょう。

PHP.iniの設定を変更する

サーバへアップロードできるサイズやタイムアウト時間が短い場合にも1064エラーが生じることがあるようです。特に長年使ってきたサーバを移転する場合、サイズが大きくなり新しいサーバへファイルをアップロードする際にエラーが生じてしまうことがあるようです。

Php.iniの設定を開き、下記項目を変更してみましょう。

  • max_executiont_time : ファイルの実行時間。エラーが生じる場合500などに変更
  • post_max_size : 最大ファイルサイズ。エラーが生じる場合、データベースのサイズに応じて変更。512MBなど
  • upload_max_filesize:同様。最大アップロードサイズ。エラーが生じる場合、サイズを変更

変更の反映には5分ほどかかります。設定変更後、再度データベースのインポートを試してみてください。

データベースを分割する

これらの設定を変更してもエラーが発生する場合、データベースを分割してエクスポート(ダウンロード)してみてください。

テーブルごとにインポートし、それでもエラーが生じる場合、行数を指定しさらに細分化してインポートしてみましょう。WordPressの場合、wp1_posts(環境によって異なる)テーブルがネックとなるケースが多いようです。

posts テーブルをエクスポートする際は、行数を指定し1000行ずつなどに分割するとエラーがなくなります。

私自身、様々な可能性を考えいろいろ挑戦しましたが、最終的に行を指定して500行ずつインポートしたところ、エラーなく無事インポートすることができました。

特にサイズが大きい場合は、エラーが生じることもあり、実際に内容に問題があったとしても、1064エラーではエラー行を特定することができません。結局エラーを特定するためには、行数を細分化してインポートしていくことで特定できます。

万一、WordPressの引っ越しで問題が生じている場合は、上記手順を試してみてください。

 

-インターネット

Copyright© まがったミニマリストのブログ , 2020 All Rights Reserved Powered by AFFINGER5.