日期:2014-05-16 浏览次数:20691 次
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