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

mysql关闭表名大小写

基础概念

MySQL是一种关系型数据库管理系统,它支持多种存储引擎,提供了灵活的数据存储和处理能力。在MySQL中,表名的大小写敏感性取决于操作系统和MySQL配置文件(my.cnf或my.ini)中的设置。

相关优势

  1. 灵活性:可以根据需要选择是否区分表名大小写,以适应不同的应用场景。
  2. 兼容性:不同的操作系统对文件名的大小写敏感性不同,MySQL的这一特性可以更好地适应不同的环境。

类型

MySQL表名大小写敏感性主要有以下两种类型:

  1. 大小写敏感:在这种模式下,表名是区分大小写的。例如,usersUsers会被视为两个不同的表。
  2. 大小写不敏感:在这种模式下,表名不区分大小写。例如,usersUsers会被视为同一个表。

应用场景

  • 大小写敏感:适用于需要严格区分表名大小写的场景,如某些特定的业务逻辑要求。
  • 大小写不敏感:适用于不需要区分表名大小写的场景,可以简化开发和维护工作。

如何关闭表名大小写

要关闭MySQL的表名大小写敏感性,需要在MySQL配置文件(my.cnf或my.ini)中进行设置。具体步骤如下:

  1. 编辑配置文件: 打开MySQL配置文件(通常位于/etc/mysql/my.cnf/etc/my.cnf),找到或添加以下配置项:
  2. 编辑配置文件: 打开MySQL配置文件(通常位于/etc/mysql/my.cnf/etc/my.cnf),找到或添加以下配置项:
  3. 其中,lower_case_table_names的值可以是0、1或2:
    • 0:表名大小写敏感(默认在Unix/Linux系统上)
    • 1:表名大小写不敏感
    • 2:表名大小写不敏感,但比较时使用文件系统的大小写敏感性
  • 重启MySQL服务: 保存配置文件后,重启MySQL服务以使更改生效。
  • 重启MySQL服务: 保存配置文件后,重启MySQL服务以使更改生效。
  • 或者
  • 或者

可能遇到的问题及解决方法

  1. 配置文件修改后未生效
    • 确保配置文件路径正确。
    • 确保配置项格式正确。
    • 确保MySQL服务已重启。
  • 数据库迁移问题
    • 如果从大小写敏感的环境迁移到大小写不敏感的环境,可能会导致表名冲突。建议在迁移前检查并处理潜在的表名冲突。
  • 性能影响
    • 修改表名大小写敏感性可能会对数据库性能产生一定影响,特别是在大型数据库中。建议在修改前进行充分的测试。

参考链接

通过以上步骤和注意事项,您可以成功关闭MySQL的表名大小写敏感性,并根据需要调整数据库的行为。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于MySQL库表名大小写问题

前言: 一般在数据库使用规范中,我们都会看到这么一条:库名及表名一律使用小写英文。你有没有思考过,为什么推荐使用小写呢?库表名是否应该区分大小写呢?带着这些疑问,我们一起来看下本篇文章。...默认情况下,库表名在 Windows 系统下是不区分大小写的,而在 Linux 系统下是区分大小写的。列名,索引名,存储过程、函数及事件名称在任何操作系统下都不区分大小写,列别名也不区分大小写。...下面再来看下各个值的具体含义: Value Meaning 0 库表名以创建语句中指定的字母大小写存储在磁盘上,名称比较区分大小写。 1 库表名以小写形式存储在磁盘上,名称比较不区分大小写。...MySQL 在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。 2 库表名以创建语句中指定的字母大小写存储在磁盘上,但是 MySQL 在查找时将它们转换为小写。...通过以上实验我们发现 lower_case_table_names 参数设为 0 时,MySQL 库表名是严格区分大小写的,而且表别名同样区分大小写但列名不区分大小写,查询时也需要严格按照大小写来书写

9.4K32

mysql表名忽略大小写问题记录

原因查找: 因为linux下mysql默认是要区分表名大小写的。...这样设置后,表名在硬盘上以小写保存,MySQL将所有表名转换为小写存储和查找表上。该行为也适合数据库名和表的别名。...3)登陆mysql数据库,"alter table 旧表名 rename 新表名" 将带大写字母的旧表改为小写表名 4)最后再启动mysql即可!...下数据库名、表名、列名、别名大小写规则是这样的: 1)数据库名与表名是严格区分大小写的; 2)表的别名是严格区分大小写的; 3)列名与列的别名在所有的情况下均是忽略大小写的; 4)变量名也是严格区分大小写的...修改mysql为不区分大小写设置: [root@test-huanqiu ~]# mysqladmin -uroot -p shutdown //以安全模式关闭数据库 [root@test-huanqiu

7.6K70
  • mysql linux环境下表名区分大小写问题

    在linux环境下表名是区分大小写的 问题 执行SHOW VARIABLES LIKE '%lowercasetable_names%' 输出结果: ?...其中 0:区分大小写,1:不区分大小写 解决办法 在mysql的配置文件中添加 lowercasetable_names=1 实际解决方式 先查找mysql使用的配置文件 添加配置 重启mysql 查看是否生效...order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf...datadir=/work1/soft/mysql/data socket=/work1/soft/mysql/mysql.sock #设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写..., 不区分大小写 lower_case_table_names=1 # 开启ip绑定 #bind-address = 0.0.0.0 [mysqld_safe] log-error=/var/log/mysqld.log

    3.5K20

    MySQL是如何打开和关闭表?

    是如何打开和关闭表的; MySQL是多线程的,因此可能有许多客户端同时为给定表发出查询。...MySQL可能会临时打开更多表来执行查询 在以下情况下,MySQL关闭未使用的表并将其从表缓存中删除: 当缓存已满并且线程尝试打开不在缓存中的表时。...当缓存处于临时扩展状态并且表从已使用状态变为未使用状态时,该表将关闭并从缓存中释放。 MyISAM将为每个并发访问打开 一个表。...如果要使用 HANDLER tbl_name 该语句打开表,则会为该线程分配专用的表对象。该表对象不与其他线程共享,并且在线程调用或线程终止之前不会关闭。...要确定表缓存是否太小,请检查 Opened_tables状态变量,该变量指示自服务器启动以来表打开操作的数量: mysql> SHOW GLOBAL STATUS LIKE 'Opened_tables

    5.1K40

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

    检查 MySQL 客户端去查看表信息以及表的物理文件包括环境信息(是否严格区分大小写),整理的现象如下:mysqldump 报错:table doesn't exist;show tables 观察:db...而当前的 MySQL 环境是 lower_case_table_names = 1(也就是不论 sql 中是否明确了表名的大小写,均按小写去匹配),可以确定此环境变量有做过变更。...由于操作系统 Linux 是大小写敏感的,MySQL 使用小写字母去匹配需要删除的库表文件,而.frm文件名中包含了大写,无法匹配,导致文件残留(mysql-error.log 此时记录,在删库过程中,...=1 条件下,下发 Drop database 操作,由于表 frm 文件名包含大写,无法匹配,因此残留,而 idb 文件不论大小写都会被删除。...五、运维建议运维中,难免有库表的迁移和改造的需求,这时需要特别注意 lower_case_table_names 的值以及库、表名的大小写,稍不留神就报错库或者表不存在。

    1.2K10

    MySQL查询区分大小写

    'ADMIN';Empty set (0.00 sec)修改配置文件lower_case_table_names=0:表示表名和数据库名区分大小写lower_case_table_names=1:表示表名和数据库名不区分大小写...(默认在 Windows 上)lower_case_table_names=2:表示表名和数据库名在表创建时区分大小写,但在查询时不区分[mysqld]lower_case_table_names=0注意事项重启...Windows 和 Linux 的区别Windows默认情况下,Windows 的 MySQL 安装会将 lower_case_table_names 设置为 1,这意味着表名不区分大小写。...如果需要区分大小写,需要手动将其设置为 0,并注意在创建表时使用正确的大小写。...Linux默认情况下,Linux 的 MySQL 安装会将 lower_case_table_names 设置为 0,这意味着表名区分大小写。

    2.2K10

    MySQL大小写敏感总结

    在MySQL中,数据库、表、triggers实际上都对应了datadir目录(或子目录)下的文件,因此,这些对象的名字是否大小写敏感主要是依赖于操作系统和文件系统的,因此这些内容在Windows中是大小写是不敏感的...):大小写敏感,数据按照CREATE 语句中的定义存储在磁盘,且在查询的时候是区分大小写的; 注意:不要在大小写不敏感的系统上使用此设置,因为容易导致像MyISAM引擎表的索引崩溃; lower_case_table_names...=1(Windows default):大小写不敏感,MySQL将数据全部转化为小写形式存储在磁盘上,而且在查询的时候也是全部转化为小写进行比较; lower_case_table_names =2(...------+ | 1 | a | | 2 | A | +------+------+可以在字段name前加个binary,使其区分大小写:MySQL root...MYSQL轻松学

    4.9K40

    关于mysql存储过程创建动态表名及参数处理

    http://blog.csdn.net/ljxfblog)  最近游戏开始第二次内测,开始处理操作日志,最开始把日志放到同一个表里面,发现一天时间,平均100玩家在线,操作记录就超过13万条,决定拆表,...具体思路是写日志的时候,根据当前的时间决定插入到当天的表里面,如表不存在则创建一个新的表,表名里面带上当天的日期。这就涉及到需要在存储过程里面动态创建一个跟日期相关的表。...mysql不是很熟悉,只会基本的语法,这种高级功能都需要上网查询,呵呵。 最开始的想法,是想定义一个字符串变量,把表名拼好后来创建表,发现创建的表名是定义的变量名,只好重新想办法。...CHARSET=utf8"); PREPARE sql_create_table FROM @sql_create_table; EXECUTE sql_create_table; 创建表之后...,还需要插入数据,但是insert语句里面也要使用动态表名,没办法还是需要和上面一样的方法来处理,先拼sql语句,示例如下:(注:rId等是存储过程传入的参数) set @sql_oper_revcord

    3.8K30

    MySQL -- 关闭 binlog

    LNMP一键安装包安装的MySQL默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql /var/下面产生mysql-bin.0000* 类似的文件,而且一般都在几十...MB到几个GB,更甚会吃掉整个硬盘空间,从来导致mysql无法启动或报错,如vps论坛用户的反馈。...如何关闭MySQL的日志功能: 在cmd下进到mysql下的bin目录下,输入mysql -u root -p然后输入密码,成功进去后输入 reset master。...: 修改/etc/my.cnf 文件,找到 log-bin=mysql-bin binlog_format=mixed 再这两行前面加上#,将其注释掉,再执行/etc/init.d/mysql restart...本文以LNMP一件安装包安装的环境为例 除MySQL重启命令和配置文件路径可能略有不同,其他一样。

    10.7K32

    mysql大小写踩坑

    翻译过来大致 按大小写敏感存储表名 按小写形式存储表名 比较时不区分大小写 按大小写敏感存储表名 以小写字母进行比较 他们的默认值在不同系统下面有区分 MacOS2 Unix0 Windows1 然后注意...中的表是按照大写表名去查,而我们此处配置的,并不是查询时忽略表名大小写,而是全部以小写表名去查询 因此配置了lower_case_table_names = 1后,大写表名用大写sql一律作废匹配不到...SELECT * FROM QRTZ_LOCKS 查询表名为大写QRTZ_LOCKS的表找不到 但由于我windows开发环境下的表名又为小写qrtz_locks 此时就有以下方案: 配置改回lower_case_table_names...翻译过来就是说Linux或者其他类似Unix的系统,不支持设置为2[1],mysql服务端会强制使用0代替 那么这么多表名,一个一个改不是很麻烦?...这里我们可以使用mysql数据库信息函数去按规则[2]查询出表名转换为小写,再拼接成多条sql 或者使用存储过程、代码处理等方式 这里我使用以下sql: SELECT CONCAT( 'ALTER TABLE

    2.5K20

    mysql无故关闭_宝塔的mysql老是自己关闭停止

    宝塔的mysql老是自己关闭停止 最近一个安装宝塔环境的项目,mysql老是关闭停止了。连续好多次了,然后我就发现不对劲。...文件 (即共享表空间) 损坏,重启后无法正常恢复。...######################## innodb_force_recovery参数说明 ######################## MySQL数据库当innodb表空间损坏时(如ibdata1...————————————————————————————————————- 记一次事故: 线上Mysql环境采用一主两从模式,突然一天上午发现主从库的Mysql服务都启动失败,最后排查是Mysql共享表空间...未经允许不得转载:肥猫博客 » mysql无故关闭_宝塔的mysql老是自己关闭停止

    5.3K30
    领券