在MySQL中,数据库对应操作系统数据目录中的目录,数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。因此,所使用操作系统的大小写敏感性决定了数据库名以及表名的大小写敏感性。这说明在大多数Unix中数据库名和表名对大小写敏感,而在windows中对大小写不敏感。

列、索引、存储子程序和触发器名在任何平台对大小写不敏感,列的别名也不敏感。

对于类Unix系统:

数据库名和表名是严格区分大小写的

表的别名是严格区分大小写的

列名与列别名在所有情况下均是忽略大小写的

变量名也是严格区分大小写的

对于win系统:

全部不区分大小写

MySQL如何在硬盘上保存和使用表名和数据库名,是由lower_case_tables_name系统变量确定,可以在启动mysqld时设置。

If set to 0, table names are stored as specified and comparisons are case sensitive.

If set to 1, table names are stored in lowercase on disk and comparisons are not case sensitive.

If set to 2, table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.

Unix平台上默认lower_case_tables_name=0

MySQL在查询或者字符串比较的时候,也是大小写不敏感的。可以指定 BINARY关键字以区分大小写。

如果只在一个平台上使用MySQL,通常不需要更改lower_case_tables_name 变量。然而,如果你想要在对大小写敏感不同的文件系统的平台之间转移表,会遇到问题。

命名规范

为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库/表/列的时候全部采用小写字母+下划线形式,不使用任何大写字母。

如果你使用InnoDB引擎,在任何平台上均应用lower_case_tables_name=1,以强制将名转换为小写。请注意在Unix系统中将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将原来的数据库名以及表名全部转换为小写。

修改方法:

本人使用的是mysql5.7.16

修改方法 是在

/etc/my.cnf 中的[mysqld]的下方增加 lower_case_tables_name=1

也有启动的时候增加参数的,

或者启动的时候加参数-O lower_case_table_names=1 来启动

看个人喜好

参考命令:

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)

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

官方说明:

Since version 4.02, MySQL on Windows converts table names to lower case automatically (ignoring the case of the table names in CREATE statements), because the variable lower_case_table_names is set to 1 by default. The following page of the manual discusses this setting with regard to cross-platform compatibility issues, and may be of some help:

http://dev.mysql.com/doc/refman/5.1/en/name-case-sensitivity.html

If you would like to use case sensitivity in your table names, you will need to set the system variable lower_case_table_names to 0 in my.ini or my.cnf by adding this line under [mysqld]

set-variable=lower_case_table_names=0

You can also achieve the same thing by starting mysql with --lower_case_table_names=0 as a startup parameter.

To see what the setting is currently on your system, execute SHOW VARIABLES LIKE 'lower_case_t%' from a mysql prompt.

mysql 大写数据库名 无法识别_MySQL数据库名、表名大小写问题相关推荐

  1. mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)

    MySQL数据库概述 MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Dat ...

  2. mysql数据库用doc命令_MySQl数据库常用的DOS命令

    MySQl数据库常用的DOS命令.. 这是第一部分.. 数据库的连接信息: jdbc:mysql://localhost:3306/shxt com.mysql.jdbc.Driver /* jdbc ...

  3. mysql日常应注意什么意思_MySql数据库日常设计和使用需要注意的几点总结

    MySql数据库日常设计和使用需要注意的几点总结 作者:佚名    来源: 网络转载 时间:2020-05-24 a,UTF-8的字符集是⼀一个汉字3个字节:varchar(255) UTF-8 25 ...

  4. mysql外键约束查询语句_MySQL数据库 : 查询语句,连接查询及外键约束

    查询指定字段        select 字段1,字段2 from 表名; 消除重复行(重复指的是结果集中的所有完全重复行)             select distinct 字段1,字段2.. ...

  5. oracle中更改表名语句,转:取Oracle 表名 字段名 注释等实用语句

    1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type fromuser_ind_columns t,user_indexes i where t.inde ...

  6. mysql主备数据库配置文档_MySQL数据库配置主从服务器实现双机热备实例教程

    网站:bbs.osyunwei.com 程序在:Web服务器192.168.21.129上面 数据库在:MySQL服务器192.168.21.169上面 实现目的:增加一台MySQL备份服务器(192 ...

  7. mysql r和n的区别_mysql数据库 r n

    mysql集群的备份与还原 应用场景 当使用mysql集群数据库的时候,有时候会误删一些数据,那么数据就缺失了完整性,现在需要将数据进行备份,将误删的数据还原出来,这样保证数据的完整性. 操作步骤 注 ...

  8. mysql数据库建新分区_mysql数据库分区

    日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕.分表和表分 ...

  9. php中MySQL数据库导入与导出_Mysql数据库导出和导入

    1.mysqldump备份整个数据库 /usr/local/mysql/bin/mysqldump -uroot -p**** project > project.back.sql #导出数据库 ...

  10. mysql数据库高级查询笔记_MySQL数据库基础——高级查询

    MySQL数据库入门--day08 高级查询 一.聚合函数: 在实际开发过程中经常需要对数据进行统计,为此MySQL中提供了一些函数来实现某些功能如下表所示: 聚合函数 1.COUNT()函数: CO ...

最新文章

  1. Linux命令速查表
  2. 剑指offer--剪绳子
  3. Magento重建所有索引方法
  4. 滴滴公众评议会第十一期:司机也可以评价乘客 你支持吗?
  5. 进阶~Qt程序启动画面
  6. 设计模式学习摘要-抽象工厂
  7. discuz源代码分析
  8. 爬取链家网上海二手房数据,并进行分析建模
  9. 图论算法 若干定义
  10. passenger+nginx框架部署
  11. 毕业设计-基于微信小程序的校园一卡通应用系统
  12. 手机vnc远程桌面,手机vnc远程桌面教程加配置说明
  13. F5 HSL高速日志配置(GTMLTM)
  14. 必修三计算机选修三知识点总结,高二必修三物理知识点总结
  15. ScrollView和HorizontalScrollView滚动条的简单使用
  16. HADR和TSA需要注意的问题
  17. 大数据平台监控指南(附技术选型、监控指标)
  18. jython mysql_几个基础的Jython脚本示例
  19. [C语言界面设计]EGE图形化界面简易版教程(适合初学者)
  20. 【第十课】UAV倾斜摄影测量三维模型修复教程——Geomagic

热门文章

  1. C#基础精华05(正则表达式,)
  2. [51单片机] 串口通讯 简单通信
  3. IE Cookie 文件格式
  4. 06手机消费趋势ZZ
  5. 群体智能优化算法之蟑螂算法((Cockroach Swarm Optimization,CSO)
  6. 【VS2010学习笔记】【异常处理】一(无法启动此程序,因为计算机中丢失libiconv-2.dll)
  7. HyperVolume多目标评价指标概述
  8. cannot import name 'StrictRedis' from 'redis'
  9. 第四章——变换域处理方法
  10. C语言多线程基础-01-线程的创建与销毁