ももらぼっ!にっき


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)

_ [tDiary] トラックバックのテスト。

そういえば、「トラックバックができない」って言われてたのを思い出したので、自分にトラックバックを打ってみるテスト。

(追記) できた。 tb.rbに実行権限を与えていなかったようだ。反省。

本日のツッコミ(全1件) [ツッコミを入れる]
_ ヽ(´ー`)ノ (2006年07月25日 11:02)

助かった。<br>情報ありがとう!