lower_case_table_names参数是用来设置MySQL是否让Schema和数据表大小写敏感,我测试的是在查询界面和MySQL控制台界面无法改变它的值,要在配置文件中改变(先关闭服务),一般情况下my.ini(在C:\ProgramData\MySQL\MySQL Server 5.7/里,linux的是my.cnf文件一般在/etc/)是没有这个配置的,

需要手动在[mysqld]下面一行加一条:lower_case_table_names=2(后面没有分号什么的)来设置大小写敏感度,然后重启。但是这个配置的取值范围貌似跟操作系统密切相关。

我只测试了Windows系统中lower_case_table_names只能设置1或2而不能设置0(Linux中貌似默认是0。但不知道能否设置为1)。

设置为1表示MySQL不区分Schema和数据表的大小写,并且创建Schema和表时所有大写字母都会自动被MySQL转换成小写(但是注意,如果之前设置了值为2而创建一个大写的Db,后将值改为1该Db的名字不会转为小写)。(如建立Schema名为DbTesting,刷新后该名就变为了dbtesting)(注意,为1时字段是可以在名字上区分大小写但是操作时是不区分的,比如你有字段ID,它生成后就是ID而不会变成id,但是where id和where ID都是可以的)。

设置为0表示MySQL区分Schema和表的大小写,创建Schema或表时你写的什么名,存入MySQL中后就是什么值,即创建DbTesting,该名不会被任何转换,且调用时也区分名字的大小写(Windows下设置为0将无法启动MySQL服务)。

设置为2表示MySQL不区分Schema和表的大小写,但是你创建Schema和表时写的什么名,存入MySQL中后就是什么值,即创建DbTesting,该名不会被转换为小写,但是调用时不区分大小写。

如果值设置为1或2,则假设你创建了Schema名为DbTesting,1转换为dbtesting,2仍显示为DbTesting,但是它们都不能创建如:dBTesting、dbtesting、DBTEsting等等Schema,否则提示Schema已存在,对于表也是如此。而且用

Schema和表及列名时都可以忽略大小写,即insert into TmpTb。。。和insert into tmPtB。。。作用是一样的(对于列名也一样,如Insert into dt(ClsName) values("ff");和insert into dt(clsname) values("ff");也是一样的)。

无论Windows或Linux最好都设置为2

经过测试,至少CentOS7中的MySQL5.7.19的lower_case_table_names的值无法改成2,只能是0或1,因此干脆就都用1好了,即忽略大小写(因为如果一边是0,一边是1那么命名规范就会变成避免大写字母中间用下划线分开,这和将该值设置为1没区别)

注意:为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库、表、列(列名可以另行考虑)的时候采用小写字母加下划线的方式,不使用任何大写字母。

个人的MySql配置总结的更多相关文章

  1. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  2. MySQL 配置

    MySQL 配置 1.服务启动: (1)使用 service 启动:service mysqld start (2)使用 mysqld 脚本启动:/etc/inint.d/mysqld start ( ...

  3. mysql配置mysql-proxy读写分离

    MySQL配置读写分离 192.168.23.131与192.168.23.132两台服务器,131是主,132是从,131是读写,132是只读.myql-proxy的IP是192.168.23.13 ...

  4. mysql配置之skip-external-locking

    转载:http://www.kuqin.com/database/20120815/328905.html MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参 ...

  5. MySQL配置

    一.登录MySQL 要登录到MySQL只需要使用如下命令. mysql -h localhost -u root -p localhost:IP地址: root:用户名: database:数据库名( ...

  6. hive 的mysql配置

    hive默认使用的是Derby数据库,Derby是一个嵌入式数据库,数据库一般创建在运行hive命令的目录,如果切换目录运行,则找不到数据库 hive mysql配置: 官网地址:https://cw ...

  7. 2016年5月19日php,mysql配置

    1.php配置 1. 配置disable_functiondisable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshe ...

  8. CentOS6.5 MySQL 配置设置总结笔记

    三.登录MySQL 登录MySQL的命令是mysql, mysql 的使用语法如下:  mysql [-u username] [-h host] [-p[password]] [dbname]  u ...

  9. MySql配置参数很全的Mysql配置参数说明

    MySql配置参数 很全的Mysql配置参数说明 1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很 ...

  10. Ubuntu下MySql配置

    Ubuntu下MySql配置 安装MySQL 命令: sudo apt-get install mysql-server MySQL初始配置及管理 启动MySQL mysql start : mysq ...

随机推荐

  1. unity插件开发

    1.简单的svn集成: 查询svn的文档可以知道svn提供各种命令符操作.因此,原理非常简单,利用命令符操作调用svn即可.代码也非常简单: 更新:Process.Start("Tortoi ...

  2. C#学习笔记——数据库篇(1)

    C#的数据连接分同样分三步走 .连接语句 string str_conn = "sever = localhost;database = smaple;usid = sa;pwd = 123 ...

  3. 深入理解ES6之——JS类的相关知识

    基本的类声明 类声明以class关键字开始,其后是类的名称:剩余部分的语法看起来像对象字面量中的方法简写,并且在方法之间不需要使用逗号. class Person { //等价于prototype的构 ...

  4. StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)

      Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方 ...

  5. Python测试开发之random模块

    random模块是一个生成随机数.随机字符的模块,平时被使用的也非常多,下面是random模块的常用方法: random.random()生成一个0-1的随机小数,如果想要对随机小数保留两位小数,可以 ...

  6. ELK介绍

    为什么用到ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,需要集中化的日志管理,所有服务器上的日志收集汇总. ...

  7. c++ 求集合的交并补

    #include<iostream.h> #include<windows.h> #include<iomanip.h> #include<stdio.h&g ...

  8. Sublime Text 3 常用快捷键

    一. 选择类       Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.     Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并 ...

  9. cygwin下java报错“找不到或无法加载主类”的故障排除

    win7 下安装了java,命令行下可以正常运行,cygwin下报错:找不到或无法加载主类. 经排查发现是cygwin的~/.bash_profile中画蛇添足的配置了$CLASSPATH: JAVA ...

  10. CvIntHaarClassifier

    //定义一个宏.宏里面是指针函数 #define CV_INT_HAAR_CLASSIFIER_FIELDS() \ float (*eval)( CvIntHaarClassifier*, sum_ ...