DB移行に失敗する@MYSQL

pnpk.netの移行作業中のトラブルの話です。

phpmyadminでデータベースをエクスポートして、再度インポートしようとすると以下のエラーメッセージが表示されました。

#1193 - Unknown system variable 'SQL_MODE'

-- phpMyAdmin SQL Dump
-- version 2.10.0.2
-- http://www.phpmyadmin.net
--
-- ホスト: localhost
-- 生成時間: 20XX 年 XX 月 XX 日 0X:1X
-- サーバのバージョン: 4.0.27
-- PHP のバージョン: 4.3.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

この場合、

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

の文字列を削除すれば良いわけなんですが、僕が使っているDBの中って文字コードがバラバラで一度メモ帳で開いて保存すると今度は文字コードの違いでDBをインポート出来なくなっちゃうんですよね。

対処法として今回はStirlingというバイナリエディタを使ってみました。

002.png
対象のSQLファイルをバイナリエディタで開き、

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

の部分を削除します。

003.png

..に見えるのはおそらく改行の部分なのでこれはそのままにしておきました。編集したら保存して再度phpmyadminにインポートしてください。

NO_AUTO_VALUE_ON_ZEROの解説は以下のページにありましたが、とりあえずこの行を削除してしまっても自分の環境では問題はありませんでした。

参考URL
http://dev.mysql.com/doc/refman/4.1/ja/command-line-options.html

4 COMMENTS

はる

同じ現象で検索し,こちらに辿り着きました。

こちらに書いてある通りにしたら解決できました。
本当にありがとうございました。

pnpk

こんばんは、コメントありがとうございます。

Stirlingを起動してインポートするとエラーの起きるSQLファイルを読み込んでください。ここで記載しているSQLファイルというのはphpmyadminからエクスポートしたファイルになります。

ファイルを開くとすぐにSET SQL_MODE…という文字列が見えると思いますが、検索する場合にはStirlingの検索ボタンを押して”検索データ”に”SET SQL_MODE”、データ種別を”文字列”にして検索してみてください。文字列は画面の右側に表示されます。

表示出来たら文字列を丸ごと削除してしまって構わないと思います。

一度試していただければと思います。

検索をかけてこちらにきました。
SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;をどのようにしてStirlingで検索をかけるとSET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;値のかかれている所がわかるのか教えてもらえないでしょうか?
私も、データベースのインポートで同じエラーがでてしまいまして困っていました><

コメントを残す

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