• ADADADADAD

    mysql修改大小写参数注意事项[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:11:32

    作者:文/会员上传

    简介:

    原由:数据库中原本参数lower_case_table_names的值为0,应开发要求需要修改为不区分大小写,即修改为1。但是修改完之后,发现本来建立的大写字母的表查不到。
    修改过程
    1,在参数文

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    原由:数据库中原本参数lower_case_table_names的值为0,应开发要求需要修改为不区分大小写,即修改为1。但是修改完之后,发现本来建立的大写字母的表查不到。
    修改过程
    1,在参数文件中修改lower_case_table_names=1
    2,重启mysql服务
    问题:发现修改完之后,本来数据库中有的大写字母的表查不到了

    测试:
    1,首先设置库为区分大小写
    mysql> show variables like 'lower_case_table_names';
    +------------------------+-------+
    | Variable_name | Value |
    +------------------------+-------+
    | lower_case_table_names | 0 |
    +------------------------+-------+
    1 row in set (0.00 sec)

    2,创建2张有大写字母的表
    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)

    3,修改参数 /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)


    4,查看数据库
    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后,之前创建的表名都不识别了。

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

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


    mysql修改大小写参数注意事项.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql修改参数