zoukankan      html  css  js  c++  java
  • lower_case_table_names区分大小写设置

    1、参数含义:
    lower_case_table_names: 此参数不可以动态修改,必须重启数据库
    lower_case_table_names = 1  表名存储在磁盘是小写的,但是比较的时候是不区分大小写
    lower_case_table_names=0  表名存储为给定的大小和比较是区分大小写的 
    lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的


    2、修改  参数lower_case_table_names 产生的问题


    mysql> show variables like 'lower_case_table_names';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | lower_case_table_names | 0     |
    +------------------------+-------+
    1 row in set (0.00 sec)

    在mysql系统中原来的参数是lower_case_table_names=0 ,就是存储的时候区分大小写,创建了表Tt  tT 

    mysql>  create table Tt(id int);
    Query OK, 0 rows affected (0.10 sec)

    mysql>  create table tT(id int);
    Query OK, 0 rows affected (0.03 sec)

    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | Tt             |
    | tT             |
    +----------------+
    2 rows in set (0.00 sec)


    修改参数 /etc/my.cnf 中设置 lower_case_table_names = 1


    mysql> show  variables like 'lower_case_table_names';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | lower_case_table_names | 1     |
    +------------------------+-------+
    1 row in set (0.00 sec)


    重启数据库
    然后查看数据库


    mysql> select * From tT;
    ERROR 1146 (42S02): Table 'test.tt' doesn't exist

    mysql> select * From tT;
    ERROR 1146 (42S02): Table 'test.tt' doesn't exist

    你可以发现当修改lower_case_table_names = 1后,之前创建的表名都不识别了


    ---创建表后,你可以发现表名不区分大小写
    mysql> create table Tt(id int);
    Query OK, 0 rows affected (0.23 sec)


    mysql> show tables;
    +-------------+
    | Tables_in_t |
    +-------------+
    | tt          |
    +-------------+
    1 row in set (0.00 sec)
    从此可以看出lower_case_table_names = 1,创建表名,不区分大小写


    结论:不能随意修改数据库的大小写,否则表名会认不出来
    lower_case_table_names 参数的修改是非动态的,必须重启数据库


    3、如何修改大小写格式


    如果原来所建立库及表都是对大小写敏感的,想要转换为对大小写不敏感,主要需要进行如下3步:
        1.将数据库数据通过mysqldump导出;
        2.在my.cnf中更改lower_case_tables_name = 1,并重启mysql数据库。
        3.将导出的数据导入mysql数据库中。

  • 相关阅读:
    关于程序员的段子,你能读懂几个?网友:你若全对算我输!
    【C++学习笔记】超详细C++注释的使用方法,不赶紧收藏就错过啦!
    做编程容易短命?衷心建议:三十六计,“保命”要紧
    【C++学习笔记】C++异常处理!你绝对不能错过的干货!
    Linux Socket套接字出现问题怎么办?教你5个方法“有备无患”
    【致敬伟大的程序员】写代码写进国博,这么牛的还有谁?
    重要的事情说三遍:局部变量一定要初始化!你做到了吗?
    自我介绍
    .NET应用程序中嵌入VB6表单
    在VB6中使用。net DLL
  • 原文地址:https://www.cnblogs.com/cb521413/p/14900638.html
Copyright © 2011-2022 走看看