zoukankan      html  css  js  c++  java
  • MySql 修改中文乱码/ 表名不区分大小写

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

  • 相关阅读:
    Openstack 通过 SQLAlchemy-ORM 访问数据库
    ulimit -c unlimited
    ajax 调用后台接口示例
    读书有什么用——北漂18年(番外篇三)
    zTree点击文字勾选复选框
    深度剖析 | 基于大数据架构的BI应用
    深度剖析 | 基于大数据架构的BI应用
    AngularJS之对话框
    AngularJS之依赖注入(实例一)
    AngularJS之$watch方法(监控动作)
  • 原文地址:https://www.cnblogs.com/leonkobe/p/6344352.html
Copyright © 2011-2022 走看看