zoukankan      html  css  js  c++  java
  • linux下mysql表名大小写敏感的问题

    执行sql:

    show global variables like '%lower_case%';

    lower_case_file_system:表示当前系统文件是否大小写敏感,只读参数,无法修改
    ON 大小写不敏感
    OFF 大小写敏感

    lower_case_table_names:这个选项不仅仅适用于表名的大小写敏感,同样适用于数据库名和表别名。
    该变量取值范围有三个,分别是0、1、2.
    设置成0:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时大小写敏感。
    设置成1:表名转小写后存储到硬盘,比较时大小写不敏感。
    设置成2:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时统一转小写比较。

    修改方法:

    //1.首先进入到docker中的mysql容器,9b33e00a9488为mysql的容器id:
    docker exec -it 9b33e00a9488 /bin/bash
    
    //2.安装vim编辑器,方便修改配置文件(以下两个命令都是在进入mysql容器后输入的)
    //同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
    apt-get update
    apt-get install vim
    
    //3.修改mysql的配置文件,如果你不想修改,只是想查看下文件的话,那你不需要安装vim编辑器,
    // 可以直接使用cat my.cnf查看
    vim /etc/mysql/my.cnf
    
    
    在[mysqld]下添加如下:
    [mysqld] 
    lower_case_table_names=1
    
    保存,退出mysql容器;
    执行docker restart MySQL ,重启MySQL容器即可查看
    

     再一次输入以上sql,可以看到结果:

     备注:以上操作只适用于mysql5.7以前的版本,以后的版本如:
    MySQL8.0 新增了data dictionary的概念,数据初始化的时候在linux下默认使用lower-case-table-names=0的参数,数据库启动的时候

    读取的my.cnf文件中的值。若二者值不一致则在mysql的错误日志中记录报错信息,参考https://blog.csdn.net/vkingnew/article/details/80613043

    参考:

    MySQL表名大小写敏感导致的问题

    解决Docker安装MySQL不区分大小写问题

  • 相关阅读:
    pysocketserver
    协程
    py模块和包
    py网络编程
    GridView绑定技巧终结者
    iOS 证书/私钥/代码签名/描述文件
    八拜之交
    POJ3230(Travel)
    POJ2553(The Bottom of a Graph)
    动态规划的实质
  • 原文地址:https://www.cnblogs.com/shiyun32/p/11343148.html
Copyright © 2011-2022 走看看