日期:2014-05-16  浏览次数:20762 次

请教 修改mysql数据库、表编码问题
具体问题如下:

我安装mysql时设置的默认编码为gb2312,现在创建了一个数据库,名字为dba,该数据库里有两个表order和doc_citation,其中表order里面已经有一些数据,表doc_citation是空的,我想从一个文本文件(该文本文件已存为utf8编码)里面往表doc_citation导入数据,结果报2389行编码错误,我就去mysql安装目录下将my.ini文件里的 
[mysql]

default-character-set=utf8
做了这样的修改,通过执行如下命令
mysql> show variables like '%character%';
得到结果
character_set_client | utf8
character_set_connection | utf8
character_set_database | db2312
character_set_filesystem | binary
character_set_results | utf8
character_set_server | gb2312
character_set_sysgtem | utf8
结果执行导数命令第一行就报错,明显是编码问题
请问(1)目前数据库,两个表的编码方式是什么?
(2)我具体该如何做,才能将文本文件导入呢?

欢迎大家给答案,很急!多谢!

------解决方案--------------------
[code=SQL][/code]

*************************** 1. row ***************************
Table: t_computer
Create Table: CREATE TABLE `t_computer` (
`c_id` double DEFAULT NULL,
`c_name` varchar(765) DEFAULT NULL,
`c_type` varchar(765) DEFAULT NULL,
`c_money` varchar(765) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

------解决方案--------------------
CREATE TABLE `t_computer` (
`c_id` DOUBLE DEFAULT NULL,
`c_name` VARCHAR(765) DEFAULT NULL,
`c_type` VARCHAR(765) DEFAULT NULL,
`c_money` VARCHAR(765) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8

LOAD DATA INFILE 'r://temp//doc_citation.txt'
REPLACE
INTO TABLE t_computer
FIELDS
TERMINATED BY '#'
LINES
TERMINATED BY '\r';


运行正常,
SHOW VARIABLES LIKE '%character%';

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir D:\\MySQL55\\share\\charsets\\