首页
学习
活动
专区
圈层
工具
发布

LOWER_CASE_TABLE_NAMES 转

http://blog.csdn.net/jesseyoung/article/details/40617031 1 简介     在MySQL中,数据库对应数据目录中的目录。...列名与列的别名在所有的情况下均是忽略大小写的;     变量名也是严格区分大小写的;     windows下:     都不区分大小写     Mac OS下(非UFS卷):     都不区分大小写 3 参数说明(lower_case_table_names...)     unix下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2 ....1 表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。该行为也适合数据库名和表的别名。该值为Windows的默认值。...2.在my.cnf中更改lower_case_tables_name = 1,并重启mysql数据库。     3.将导出的数据导入mysql数据库。

1.2K10

mysql8卸载重新安装并配置lower_case_table_names=1

酒食上得来的朋友,等到酒尽樽空,转眼成为路人——莎士比亚 因为mysql8不支持在已经初始化完成后再进行配置lower_case_table_names 我这里卸载重装(重新初始化应该也可以吧?...cd /etc/mysql/mysql.conf.d/ 修改字符集以及配置表名以小写形式存储,并且在比较时不区分大小写 [mysqld] character_set_server = utf8mb4 lower_case_table_names...= 1 # 注释掉 bind-address = 127.0.0.1 然后重建数据目录 root@iZuf6afyp0j8anyom0ro8zZ:~# rm -rf /var/lib/mysql root...UPDATE user SET host = '%' WHERE user = 'mysql'; Query OK, 0 rows affected (0.00 sec) Rows matched: 1...创建数据库并赋予权限 mysql> create database test default charset utf8mb4 COLLATE utf8mb4_general_ci; Query OK, 1

1K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    小知识:MySQL修改lower_case_table_names参数

    环境:MySQL 5.7.25 起初创建环境时没有要求表名称不区分大小写,后续应用使用提出要设置lower_case_table_names=1的需求,期望表名不再区分大小写。...1.默认区分大小写的环境 2.修改参数lower_case_table_names 3.验证表名区分大小写情况 1.默认区分大小写的环境 默认在lower_case_table_names=0的情况下...在my.cnf配置文件中[mysqld]标签的作用区域,增加`lower_case_table_names=1`的配置,然后重启MySQL服务: service mysqld restart 3....但是原表T1,在参数修改后,通过t1和T1都无法访问,细看报错可以看到无论我们传入T1还是t1,都是按照小写的t1来解析。...set (0.00 sec) 至于之前的T1,如果想要清理删除,可改回lower_case_table_names=0后进行删除。

    11.8K10

    【MySQL】lower_case_table_names参数详解

    1.参数说明: lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写...lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的 unix,linux下lower_case_table_names默认值为 0 .Windows下默认值是...1 .Mac OS X下默认值是 2 2.查看方法: # 进入mysql命令行 执行以下任一语句查看: show variables like 'lower_case_table_names'; select...@@lower_case_table_names; 3.更改方法: 更改数据库参数文件my.cnf 在mysqld下 添加或修改 lower_case_table_names = 1 之后重启数据库...:rename table TEST_TB to test_tb; 3.设置lower_case_table_names = 1 4.重启数据库

    3.2K10

    修改 lower_case_table_names 导致 frm 文件删除失败

    第 1 步,确认系统变量 lower_case_table_names 的值是 0: MySQL root@localhost> show variables like 'lower_case_table_names...这是因为 lower_case_table_names = 1 时,MySQL 内部会使用小写形式的表名,具体请看后面关于 lower_case_table_names 的介绍。 2....3. lower_case_table_names 系统变量 lower_case_table_names 会影响数据库名、数据库目录名、表名、frm 文件名、ibd 文件名,它有 3 种取值(0、1、...lower_case_table_names = 1 时,删除数据库,ibd 文件删除成功,frm 文件删除失败。 我们还是以 1....Test.ibd 3.1 lower_case_table_names = 1 小节介绍过,lower_case_table_names 修改为 1 之后,server 层通过表名去 InnoDB 查找对应的表之前

    1.1K30

    MySQL血泪教训:一次大小写敏感参数 lower_case_table_names从0 改1的线上事故复盘

    很多人第一反应就是修改 lower_case_table_names 参数——将默认值 0 改为 1,让 MySQL 自动忽略表名大小写。但你真的了解这个操作背后的“雷区”吗?...今天,我们通过一个修改参数lower_case_table_names=0 切换到 =1 的故障来演示正确的完整流程及潜在风险。 1....=2) 测试环境:已设置 lower_case_table_names=1 生产环境:CentOS 7 + 新建的MySQL 5.7(默认 lower_case_table_names=0,参数没改)...错误操作: DBA同事查资料后,看到网上有人说:“把 lower_case_table_names 改成 1 就行了!”...于是他信心满满地修改了 /etc/my.cnf: [mysqld] lower_case_table_names=1 然后重启数据库: systemctl restart mysqld 结果重启后所有查询都报错了

    46710

    在Linux下管理MySQL的大小写敏感性

    1 理解MySQL中的大小写敏感性 默认情况下,MySQL在Windows上是大小写不敏感的,但在Linux上是大小写敏感的。这种差异可能导致不一致性,特别是在迁移数据库或开发跨平台应用程序时。...MySQL中的大小写敏感行为由lower_case_table_names系统变量控制。 lower_case_table_names = 0:表名按指定存储,比较是大小写敏感的。...lower_case_table_names = 1:表名在磁盘上以小写存储,比较不是大小写敏感的。 lower_case_table_names = 2:表名按指定存储,但比较不是大小写敏感的。...1,以实现大小写不敏感的行为: [mysqld] lower_case_table_names=1 重启MySQL服务: 保存配置文件后,重启MySQL服务以应用更改: sudo systemctl restart...设置为1: [mysqld] lower_case_table_names=1 重启MySQL服务: 重启MySQL服务以应用更改: sudo systemctl restart mysql 4 针对Java

    1.5K00

    故障分析 | 库表名-大小写不规范,运维两行泪

    而当前的 MySQL 环境是 lower_case_table_names = 1(也就是不论 sql 中是否明确了表名的大小写,均按小写去匹配),可以确定此环境变量有做过变更。...那么,我们不妨做出如下猜想:在 lower_case_table_names = 1 环境下,下发了 DROP database 操作。...=1 ,并重启 MySQL ;在 lower_case_table_names=1 条件下,模拟删除数据库:test_database ;查看物理文件信息以及 mysql-error.log 信息;使用...;在 lower_case_table_names=1 条件下,MySQL 使用小写字母(不论 sql 语句里是否明确使用大写表名)去匹配需要删除的库表文件;在 lower_case_table_names...场景1:将 MySQL 的环境变量 lower_case_table_names 从默认的 0 ,修改为1先将库名和表名转换为小写;编辑配置文件,添加配置:lower_case_table_names

    96110

    关于MySQL库表名大小写问题

    一般很少将 lower_case_table_names 参数设置为 2 ,下面仅讨论设为 0 或 1 的情况。...也可以将 lower_case_table_names 设为 1 来解决此问题,我们来看下此参数为 1 时的情况: # 将上述测试库删除 并将 lower_case_table_names 改为 1 然后重启数据库...row in set (0.00 sec) 当 lower_case_table_names 参数设为 1 时,可以看出库表名统一用小写存储,查询时不区分大小写且用大小写字母都可以查到。...这样会更易用些,程序里无论使用大写表名还是小写表名都可以查到这张表,而且不同系统间数据库迁移也更方便,这也是建议将 lower_case_table_names 参数设为 1 的原因。...如果需要将 lower_case_table_names 参数从 0 改成 1 ,可以按照下面步骤修改: 首先核实下实例中是否存在大写的库及表,若不存在大写的库表,则可以直接修改配置文件然后重启。

    8.7K32

    小白学习MySQL - 大小写敏感问题解惑

    /doc/refman/5.7/en/identifier-case-sensitivity.html 概括一下就是, (1) lower_case_table_names = 0(Unix默认) 表名存储为给定的大小和比较是区分大小写的...(2) lower_case_table_names = 1(Windows默认) 表名存储在磁盘是小写的,但是比较的时候是不区分大小写。...在所有的系统中,都设置lower_case_table_names是1,唯一的缺点,就是当时用show tables或者show databases,不会看到原始大小写。 2....Unix中如果将lower_case_table_names改为1,在重启进程前,需要将旧的数据库和表名改成小写(如果不改,会导致已存在的大写对象不能使用),可以使用rename, RENAME TABLE...T1 TO t1; 如果有很多数据库需要改,则可以导出,设置参数,再导入, 1.

    1.6K10
    领券