系统是Ubuntu12.04 MySQL版本是5.5 如果是你是其他版本的MySQL,请绕行,我已经因为版本问题深受其害了
装MySQL的时候直接用的apt-get install mysql-server,然后用的时候有乱码出现,发现mysql-server的编码是latin,通过status查看
然后去网上找编码修改,又是一大堆,试了一大堆都不行,烦死。最多的是改/etc/my.cnf文件,但我服务器上没有这个文件,看了下,我的配置文件是这个/etc/mysql/my.cnf,然后照着别人说的修改这个文件,
1 [client] 下添加: default-character-set=utf8
2[mysqld]下添加:default-character-set= utf8
然后重启数据库,然后就变成这样了:
然后继续找,试了一下其他各种没用的东西都不行,在我快要疯掉的时候找到原因了,发现是因为MySQL5.5跟低版本的不一样,需要这样改才行:
[mysqld] 下添加 :
character-set-server=utf8
collation-server=utf8_general_ci
然后重启成功。查看status,成功改为utf8。真的成功了,泪奔!!!!
网上有一堆用这个语句查:show variables like 'character%';
然后一堆set ...=utf8,别信,都是扯淡,改了一点用没有,查看status还是没变,强烈吐槽一下(当然也可能是MySQL版本问题,可能低版本的可以这样搞)。
------------------------------------
原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:
1、用root登录,修改 /etc/my.cnf;
2、在[mysqld]节点下,加入一行: lower_case_table_names=1
3、重启MySQL即可;
其中 lower_case_table_names=1 参数缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0,因此在window中不会遇到的问题,一旦一直到linux就会出问题的原因(尤其在mysql对表起名时是无法用大写字母的,而查询用了大写字母却会出查不到的错误,真是弄的莫名其妙)