一、调整服务器的字符集会导致1067错误
下列情况会出现1067错误:
1.设置好服务器的字符集后手支更改(my.ini)服务器的字符集
2.设置好服务器的字符集后,使用MySQLWorkbench.exe 在Server Administration 中更改服务器的字符集
如何解决由修改My.ini导致1067错误?
首先,删除my.ini这个配置文件,其次新建立my.ini文件,并重新设立数据库安装目录与数据库数据库存放目录;
二、如何调整服务器的字符集?
使用%bin/MySQLInstanceConfig.exe来更改字符集,然后重新启动,在以后使用中,尽量使用上述程序完更改字符集。
三、查看与修改服务器与客户端编码方式
用show variables like “%colla%”;show variables like “%char%”;这两条语句查询一下字符集。
若想修改某一个编码,使用set character_XXX_XXX ='XXX';来修改。
注意:
如果以前建有数据库没有删除的 请用 show create database 数据库名;和 show create table 表名;查看一下数据库和表的字符集是否为UTF8 ,它不能修改原来已经存在的数据库的的字符集。
在命令行下面可以用
alter database 数据库名 character set “字符集”; 命令来修改数据库字符集
alter table 表名 character set “字符集”; 命令来修改表的字符集
还有一点要注意的是,修改为UTF8以后,在命令行下面中文是乱码的,只输出到页面或控制台是正常的,这个问题我也上网查了一下,貌似命令行下面不支持UTF8,看来UTF8与GBK之间兼容还有很长的路。
当修改以后,在命令行下面如果要插入中文,可以在插入语句之前执行,set names gbk2312;就可以插入中文了,但是不能插入繁体和一些特殊符号。但是上一步设置的character_XXX_XXX 都变为gbk2312,总算是在命令行能看到中文了。