码迷,mamicode.com
首页 > 数据库 > 详细

MySql 修改中文乱码/ 表名不区分大小写

时间:2017-01-23 17:36:06      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:缺省   没有   服务   new   查询   windows   net   大写   ...   

系统是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对表起名时是无法用大写字母的,而查询用了大写字母却会出查不到的错误,真是弄的莫名其妙)

MySql 修改中文乱码/ 表名不区分大小写

标签:缺省   没有   服务   new   查询   windows   net   大写   ...   

原文地址:http://www.cnblogs.com/leonkobe/p/6344352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!