電子書籍の厳選無料作品が豊富!

insertを用いてテーブルにレコードを追加することができるのにもかかわらず、load data infile を用いるとerror1366と表示されてしまいます。解決方法を教えてください。

Windows7 mysqlは最新版を使っています。

インストールしたそのままの状態だと、insertを用いて日本語を挿入しようとするとerror 1366と出てしまってましたが、my.iniを書き換えることによってinsert table1 values (1,'ああ');といった操作でエラーが出ることはなくなりました。

しかしcsvファイルをload data infileを用いてインポートしようとすると、またerror 1366が出てしまいました。
インポートしようとしたファイルには日本語が書かれています。

英字だけのファイルを同様にインポートすると、エラーは出ませんでした。


<table1>
id int(15)
name varchar(255)


1,a
2,b
3,asdf

はインポート可能
。また
insert table1 values (1,'あ');
も正常に動作。

1,あ
2,い

をインポートするとエラー。


これができないと先に進めません・・・

ご教授お願いします。

A 回答 (3件)

マルチバイトなキャラクターセットのファイルをLOAD DATAで読み込む場合、LOAD DATA文に文字コードを指定しないとうまく読み込まない場合があります。



MySQLの日本語マニュアルには文字コードを指定する部分に関して記載がありませんので、英語版のほうのマニュアルのURLを記載しておきます。

参考URL:http://dev.mysql.com/doc/refman/5.1/en/load-data …
    • good
    • 0

>mysqlは最新版を使って



最低限、MySQL 5.0とかMySQL 5.1レベルまでは、具体的に提示するようにしてください。
また、安定バージョンでなく開発途上のものだと、MySQL 5.1.xxで「仕様変更した」、「バグ修正した」といったことも実際にあったりしますので、より具体的なバージョン番号を提示するようにしてください。

> my.iniを書き換えることによって

MySQLの文字コードの設定は、サーバ、データベース、クライアント別にあります。

実際にどういう設定が有効になっているか、確認できませんか?
SQLが入力できる状態で、

SHOW VARIABLES LIKE '%char%'

で表示させてみてください。

>insertを用いて日本語を挿入
>load data infileを用いてインポートしようと

insertは、MySQL Command Line Clientから直接入力しているのでしょうか?
load data infileも、同じですか?
もし違うクライアントソフトから実行しているなら、双方で SHOW VARIABLES の結果を確認してください。
    • good
    • 0

推測に過ぎませんが、テーブルのnameフィールドの文字コードと


データファイルの文字コードが違うのではないでしょうか。

MySQLの管理ツールは何か使われてますか?

この回答への補足

回答ありがとうございます。

説明不足で申し訳ありません。
管理ツールはworkbenchを使っています。

nameフィールドの文字コードはworkbenchで、
データファイルはTeraPadで確認しましたが、両方sjis
となっていました。

なぜ読み込めないのでしょうか…

引き続き回答お待ちしております。

補足日時:2010/08/06 12:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!