日期:2014-05-16 浏览次数:20809 次
D:mysql5>.binmysqld-max-nt.exe --console
061106 20:35:21 InnoDB: Started; log sequence number 0 43655
061106 20:35:22 [Note] .binmysqld-max-nt.exe: ready for connections.
Version: '5.0.18-nt-max' socket: '' port: 3306 MySQL Community Edition (GPL)
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:Documents and SettingsAdministrator>cd d:mysql5bin
C:Documents and SettingsAdministrator>d:
D:mysql5bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 5.0.18-nt-max
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use test
Database changed
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+---------------------------+
| Variable_name | Value |
+--------------------------+---------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:mysql5sharecharsets |
+--------------------------+---------------------------+
7 rows in set (0.00 sec)
mysql> create table ad(name varchar(32));
Query OK, 0 rows affected (0.10 sec)
mysql> insert into ad values('汉字');
Query OK, 1 row affected (0.00 sec)
mysql> select * from ad;
+------+
| name |
+------+
| 汉字 |
+------+
1 row in set (0.00 sec)
mysql>
此时,插入、显示字段的汉字值都正确。
但是如果服务器启动的时候指定了字符集参数,或者配置文件里面包含字符集参数
情况就不同了
my.ini
[mysqld]
default-character-set=gbk
D:mysql5>.binmysqld-max-nt.exe --defaults-file=my.ini --ansi --console
InnoDB: Error: log file .ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 8388608 bytes!
061106 21:31:06 [Note] .binmysqld-max-nt.exe: ready for connections.
Version: '5.0.18-nt-max' socket: '' port: 3306 MySQL Community Edition (GPL)
061106 21:37:46 [Note] .binmysqld-max-nt.exe: Normal shutdown
061106 21:37:48 [Note] .binmysqld-max-nt.exe: Shutdown complete
D:mysql5>binmysqld-max-nt.exe --character_set_server=gbk --console
InnoDB: Error: log file .ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 8388608 bytes!
061106 21:39:55 [Note] binmysqld-max-nt.exe: ready for connections.
Version: '5.0.18-nt-max' socket: '' port: 3306 MySQL Community Edition (GPL)
此时,显示过去未指定字符集时建立的表并插入汉字的字段,显示是正常的
D:mysql5bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 5.0.18-nt-max
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use test
Database changed
mysql> select * from ad;
+------+
| name |
+------+
| 汉字 |
+------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+---------------------------+
| Variable_name | Value |
+--------------------------+---------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | gbk |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:mysql5sharecharsets |
+--------------------------+---------------------------+
7 rows in set (0.00 sec)
这个时候建立的表并插入汉字的字段,不能正确显示
mysql> create table ad2(name varchar(32));
Query OK, 0 rows affected (0.06 sec)
mysql> insert into ad2 values('汉字');
Query OK, 1 row affected, 1 warning