博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql 修改中文乱码/ 表名不区分大小写
阅读量:5290 次
发布时间:2019-06-14

本文共 1041 字,大约阅读时间需要 3 分钟。

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

转载于:https://www.cnblogs.com/leonkobe/p/6344352.html

你可能感兴趣的文章
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
opencv安装配置
查看>>
JAVA-初步认识-第六章-面向对象(举例)
查看>>
js合并数组
查看>>
cNoteSetCursor_命令窗口光标设置
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
Benelux Algorithm Programming Contest 2014 Final(第二场)
查看>>
随机变量的期望为什么把不是自己密度函数当成自己的权重来求期望呢?
查看>>
6-1 并行程序模拟 uva210
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
javascript知识点记录01
查看>>
javascript事件代理
查看>>
es6 新增特性
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
《算法》C++代码 快速排序
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>