2006年04月12日
_ [MySQL] mysqlコマンドで文字コードを指定する。
mysqlコマンドで日本語データをinsertしようとすると、以下のようにエラーになってしまう。
C:\>mysql -h localhost -u user -p
mysql> use test;
Database changed
mysql> create table test(name varchar(30));
Query OK, 0 rows affected (0.13 sec)
mysql> insert into test values('ほげ');
ERROR 1406 (22001): Data too long for column 'name' at row 1
これは、文字コードがutf8になってしまっているから起こるようだ。
C:\>mysql --help
(...略...)
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
--------------------------------- -----------------------------
(...略...)
default-character-set utf8
解決するには、--default-character-set=sjisとするか、set names sjisとすればよい。
C:\>mysql -h localhost -u user -p --default-character-set=sjis
mysql> use test;
Database changed
mysql> create table test(name varchar(30));
Query OK, 0 rows affected (0.13 sec)
mysql> insert into test values('ほげ');
Query OK, 1 row affected (0.03 sec)
mysql> select * from test;
+------+
| name |
+------+
| ほげ |
+------+
1 row in set (0.00 sec)
もしくは
C:\>mysql -h localhost -u user -p
mysql> use test;
Database changed
mysql> set names sjis;
Query OK, 0 rows affected (0.00 sec)
mysql> create table test(name varchar(30));
Query OK, 0 rows affected (0.13 sec)
mysql> insert into test values('ほげ');
Query OK, 1 row affected (0.03 sec)
mysql> select * from test;
+------+
| name |
+------+
| ほげ |
+------+
1 row in set (0.00 sec)
本日のツッコミ(全1件) [ツッコミを入れる]
_ ヽ(´ー`)ノ [助かった。 情報ありがとう!]