问题是这样的:
我新建了一个数据库叫:tempdb
创建了一个表:temp_test_tbl (int id primary key, uname varchar(20),upassword varchar(20) )
我首先在DOS窗口下插入一条数据:insert into temp_test_tbl values (00001,'jackie','jackie'); OK 没有问题
我再插入一条有带有中文的:insert into temp_test_tbl values (00002,'你好','你好');
报错: data too long for column "uname" (不是字符长度的问题)
我后来在桌面新建了一个temp_test_tbl.txt文件,里面也是insert into temp_test_tbl values (00002,'你好','你好')
这条SQL语句,运行:source C:\Documents and Settings\Administrator\桌面\temp_test_tbl.txt 还是报同样的错
通过网上查询,把my.ini里面的
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"这句注释,
当在运行:insert into temp_test_tbl values (00002,'你好','你好');
没有报:data too long for column "uname"
但是运行:SELECT * FROM temp_test_tbl 时,uname,upassword两列的值是空的,相当于屏蔽了报错信息
没有办法,我最后到MySQL Administrator 插入insert into temp_test_tbl values (00002,'你好','你好');
Ok 这样也没有问题,没有报错 , SELECT * FROM temp_test_tbl ,查出来的数据是OK的(中文也显示了,非乱码),
但是我到DOS窗口的时候执行SELECT * FROM temp_test_tbl 时,又出现了乱码
请问大侠们,这个问题该怎么样解决??????????等待中...
以下是我本地MYSQL的一些基本信息:
mysql> \s
--------------
mysql Ver 14.12 Distrib 5.0.27, for Win32 (ia32) Connection id: 1
Current database: tempdb
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.27-community-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 34 min 10 sec Threads: 2 Questions: 193 Slow queries: 0 Opens: 63 Flush tables: 1 Open ta
bles: 0 Queries per second avg: 0.094
--------------
我新建了一个数据库叫:tempdb
创建了一个表:temp_test_tbl (int id primary key, uname varchar(20),upassword varchar(20) )
我首先在DOS窗口下插入一条数据:insert into temp_test_tbl values (00001,'jackie','jackie'); OK 没有问题
我再插入一条有带有中文的:insert into temp_test_tbl values (00002,'你好','你好');
报错: data too long for column "uname" (不是字符长度的问题)
我后来在桌面新建了一个temp_test_tbl.txt文件,里面也是insert into temp_test_tbl values (00002,'你好','你好')
这条SQL语句,运行:source C:\Documents and Settings\Administrator\桌面\temp_test_tbl.txt 还是报同样的错
通过网上查询,把my.ini里面的
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"这句注释,
当在运行:insert into temp_test_tbl values (00002,'你好','你好');
没有报:data too long for column "uname"
但是运行:SELECT * FROM temp_test_tbl 时,uname,upassword两列的值是空的,相当于屏蔽了报错信息
没有办法,我最后到MySQL Administrator 插入insert into temp_test_tbl values (00002,'你好','你好');
Ok 这样也没有问题,没有报错 , SELECT * FROM temp_test_tbl ,查出来的数据是OK的(中文也显示了,非乱码),
但是我到DOS窗口的时候执行SELECT * FROM temp_test_tbl 时,又出现了乱码
请问大侠们,这个问题该怎么样解决??????????等待中...
以下是我本地MYSQL的一些基本信息:
mysql> \s
--------------
mysql Ver 14.12 Distrib 5.0.27, for Win32 (ia32) Connection id: 1
Current database: tempdb
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.27-community-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 34 min 10 sec Threads: 2 Questions: 193 Slow queries: 0 Opens: 63 Flush tables: 1 Open ta
bles: 0 Queries per second avg: 0.094
--------------
MySQL 中文显示乱码
set names 'gbk';