竹形誠司 ブログ
ご質問    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
INSERT時にエラーとなってしまいます
by masayuki[masayuki]
「Java+MySQL+Tomcatで始めるWebアプリケーション構築入門」の
INSERTの箇所(P133)にて、以下のエラーとなってしまいます。

---------------------------------------------------------
mysql> INSERT INTO author(name,birth_year) VALUES('夏目漱石',1867);
ERROR 1406 (22001): Data too long for column 'name' at row 1
---------------------------------------------------------

my.iniの設定はcp932に変更をし、サービスの再起動も実行しました。
OSはwindows vistaとなります。
色々なサイトで調べても解決できませんでした。
ご教示よろしくお願いいたします。

投稿:masayuki[masayuki]/2011年 01月 09日 23時 51分 /更新:2011年 01月 09日 23時 55分
RE:INSERT時にエラーとなってしまいます
by 竹形 誠司[takegata]
竹形です。こんばんは。
デフォルトの文字コードは、テーブル作成時にテーブルに対して設定されます。そのため、my.iniを修正しても、既に作成されたテーブルに対しては、この設定
が反映されません。テーブルを一度削除して、つくり直してみていただけますか?

取り急ぎ。

投稿:竹形 誠司[takegata]/2011年 01月 10日 00時 54分 /更新:2011年 01月 10日 00時 54分
RE:INSERT時にエラーとなってしまいます
by 竹形 誠司[takegata]
訂正です。
デフォルトの文字コードはデータベース領域にも設定されていました。
なので、データベース領域を一度削除してつくり直してみてください。

投稿:竹形 誠司[takegata]/2011年 01月 10日 02時 51分 /更新:2011年 01月 10日 02時 51分
RE:INSERT時にエラーとなってしまいます
by masayuki[masayuki]
こんばんは。返信ありがとうございます。
以下のSQLでテーブル削除を行いましたが、エラーのままです。
----------------------------------------------
mysql> DROP DATABASE IF EXISTS jamyto;
Query OK, 1 row affected (0.44 sec)

mysql> #データベース領域の作成
mysql> CREATE DATABASE jamyto;
Query OK, 1 row affected (0.00 sec)

mysql> #データベース領域の指定
mysql> USE jamyto;
Database changed
mysql> #テーブルの作成
mysql> CREATE TABLE author(
    ->  id INT AUTO_INCREMENT PRIMARY KEY,
    ->  name CHAR(10),
    ->  birth_year INT
    -> );
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO author(name,birth_year) VALUES('夏目漱石',1867);
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql>

----------------------------------------------

よろしくお願いいたします。

投稿:masayuki[masayuki]/2011年 01月 12日 02時 12分
RE:INSERT時にエラーとなってしまいます
by 竹形 誠司[takegata]
うーむ、そうですか。
my.ini が正しく読み込まれていないのかも知れませんね。
2点、確認させてください。
1) my.iniはどこに置いてありますか?
2) MySQLは再起動しましたか?

投稿:竹形 誠司[takegata]/2011年 01月 14日 11時 34分 /更新:2011年 01月 14日 11時 34分
RE:INSERT時にエラーとなってしまいます
by masayuki[masayuki]
my.iniの場所です
「C:\Program Files\MySQL\MySQL Server 5.0」

mySQLは再起動しました。

本日気がついたのですが、my.iniをテキストエディタで開くと
「default-character-set=cp932」となっていますが、
my.iniを右クリックの編集で確認すると
「default-character-set=latin1」
のままでした。
これは関係ありませんか?

何度もすいません。

投稿:masayuki[masayuki]/2011年 01月 15日 00時 32分 /更新:2011年 01月 15日 00時 35分
RE:INSERT時にエラーとなってしまいます
by masayuki[masayuki]
連続ですいません。
解決できました。
どうやらmy.iniをテキストエディタで編集しても変更されないようです。
更新日時が変更されていませんでした。
また、前にも記載しましたように、右クリックで編集としても保存ができませんでした。

で、別の場所にmy.iniをcp932で作成し、ファイルを上書き保存することで、
INSERTができました。

色々とありがとうございました。
また、不明点が出てきましたらよろしくお願いいたします。
投稿:masayuki[masayuki]/2011年 01月 15日 00時 57分 /更新:2011年 01月 15日 00時 57分
RE:INSERT時にエラーとなってしまいます
by 竹形 誠司[takegata]
VISTAやWindows7はProgram Filesフォルダへの書き込みに制限があるんでしたね。
また何かあれば遠慮無くどうぞ。
投稿:竹形 誠司[takegata]/2011年 01月 15日 22時 05分 /更新:2011年 01月 15日 22時 05分