バックアップ失敗中

mysqldumpコマンドを実行するとこんなエラーになってしまいます。

mysqldump: Error: '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 'SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILE' when trying to dump tablespaces

サーバとクライアントのバージョンの不一致がいけないっぽいです。サーバ側は4.0でクライアントが5.1です。オプションの指定でどうにかならいかと思いましたがそれらしいオプションを見つけられませんでした。

さくらインターネットからのお知らせによるとこうなっています。

MySQL は 4.0 / 5.1 どちらかのバージョンのみ選択できます。現在 MySQL4.0 をご利用中の場合、MySQL5.1 をご利用いただくにはMySQL4.0 のデータベースを全削除する必要があります。

一回データを全部消さないと5.1にバージョンアップできないみたいですね。データを消すためにバックアップを取りたいのですけど肝心のmysqldumpが使えないという状態。SELECT * INTO OUTFILEで上手くいくかどうかですね。

それ以前に、今4.0で動かしているアプリケーションが5.1でも動くかどうか検証もしなくてはいけません。作業としてはこんな感じでしょうか。

  1. ローカルにv5.1環境を準備
  2. ローカルのv5.1環境でアプリケーションが動作するかの検証
    1. 動作しない場合はアプリケーション改修
  3. 本番のv4.0からデータを取得
  4. ローカルのv5.1環境にデータを登録
    1. データの登録が上手くいかない場合は自作ツール作成
  5. 本番のv4.0からデータを削除
  6. 本番のv5.1にデータを登録
  7. 本番のv5.1環境でアプリケーションが動作するかの検証

すべてが順調にいって、やる気が持てば1日でできそうな作業ですけど、きっとだらだらやるのでしばらくかかりそうです。

(4月12日追記)

コメントで教えていただきました。mysqldumpの代わりにmysqldump-4.0を使うと上手くいきます。

参考:さくらのレンタルサーバで mysql コマンドは使えますか?