今天用Mysql,突然发现Mysql命令行查询时,中文字段不显示,mysql能插入中文(可在Navicate中看到插入的中文字段),在命令行查询时,就是显示不出中文字段。以前都没出现过这种情况。求助各位高手,怎么解决啊?帮帮忙吧?我已经把数据库test、表中字段name、my.ini文件中都设置为GBK了,win7 32位系统。问题如下:mysql> use test;
Database changed
mysql> create table t(
-> id int primary key,
-> name varchar(20),
-> age int);
Query OK, 0 rows affected (0.16 sec)mysql> insert into t values(1,'李宁',20);
Query OK, 1 row affected (0.00 sec)mysql> select * from t;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | | 20 |
+----+------+------+
1 row in set (0.00 sec)mysql> status
--------------
D:\Program Files\MySQL\MySQL Server 5.1\b
for Win32 (ia32)Connection id: 4
Current database: test
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.1.30-community
Protocol version: 10
Connection: localhost via TCP
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 23 min 44 secThreads: 4 Questions: 48 Slow queries:
les: 16 Queries per second avg: 0.33
mysqldatabase
Database changed
mysql> create table t(
-> id int primary key,
-> name varchar(20),
-> age int);
Query OK, 0 rows affected (0.16 sec)mysql> insert into t values(1,'李宁',20);
Query OK, 1 row affected (0.00 sec)mysql> select * from t;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | | 20 |
+----+------+------+
1 row in set (0.00 sec)mysql> status
--------------
D:\Program Files\MySQL\MySQL Server 5.1\b
for Win32 (ia32)Connection id: 4
Current database: test
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.1.30-community
Protocol version: 10
Connection: localhost via TCP
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 23 min 44 secThreads: 4 Questions: 48 Slow queries:
les: 16 Queries per second avg: 0.33
mysqldatabase
MySQL 中文显示乱码
set names 'gbk';
再帮忙看看,还有哪个地方有问题。mysql> show variables like 'char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)mysql> select * from t;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | | 20 |
+----+------+------+
到底哪儿出问题了啊?以前没出现过这个问题呢,刚发现的。自己设置了好长时间,都不知道是哪儿的问题。mysql> show variables like 'char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)mysql> select * from t;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | | 20 |
+----+------+------+
mysql> show create table t;
+-------+-------------------------------
----------------------------------------
| Table | Create Table+-------+-------------------------------
----------------------------------------
| t | CREATE TABLE `t` (
`id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
mysql> show full fields from t;
+-------+-------------+----------------+------+-----+---------+-------+---------------------------------+-----
----+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comm
ent |
+-------+-------------+----------------+------+-----+---------+-------+---------------------------------+-----
----+
| id | int(11) | NULL | NO | PRI | NULL | | select,insert,update,references |
|
| name | varchar(20) | gbk_chinese_ci | YES | | NULL | | select,insert,update,references |
|
| age | int(11) | NULL | YES | | NULL | | select,insert,update,references |
|mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)mysql> select * from t;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | | 20 |
+----+------+------+
1 row in set (0.00 sec)
可以直接插入一条,然后检查。