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. 一道变态的Javascript面试题

    转载http://cymoft.blog.51cto.com/324099/1260099 1 2 3 4 5 6 7 8 9 f = function() {return true;};  g =  ...

  2. Kaggle Challenge简要介绍

    https://en.wikipedia.org/wiki/Kaggle 以下内容,直接摘自维基百科,主要起到一个记录的作用,提醒自己有时间关注关注这个竞赛. Kaggle is a platform ...

  3. redis复制原理和应用

    1.前言 说到分布式高可用,必然少不了复制,一来是为了做个冗余备份防止数据丢失,二来还可以达到分流来提高性能的目的.基本架构: 下面用M表示Master(主服务器),S表示Slave(从服务器),话不 ...

  4. 深入理解php内核 编写扩展_III- 资源

    原文:http://devzone.zend.com/article/1024-Extension-Writing-Part-III-Resources 编写扩展_III- 资源 介绍 资源 初始化资 ...

  5. Nodejs学习笔记(十七)--- 浮点运算decimal.js

    目录 前言 JavaScript加减乘除运算 decimal.js加减乘除运算 前言 开发过程中免不了有浮点运算,JavaScript浮点运算的精度问题会带来一些困扰 JavaScript 只有一种数 ...

  6. node.js入门必知

    目录: 一.node.js简介 1.1特点 1.2适合开发什么 1.3Node.js无法挑战老牌后台语言 二.http模块 一.node.js简介 Node.js开发服务器,数据.路由.本地关心的效果 ...

  7. 高精速撸project A*B

    啊这个乘法我真的想不起来了 所以我跑去看了之前交的代码 那个时候的我真纯真啊,用cin cout都不关同步的 哪像现在,随手先写个inline void in(),能getchar()就不scanf, ...

  8. Java代码操作SVN

    package com.leadbank.oprPlatform.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import ...

  9. MySQL系列:基于binlog的增量订阅与消费(一)

    在一些业务场景中,像在数据分析中我们有时候需要捕获数据变化(CDC):在数据审计中,我们也往往需要知道数据从这个点到另一个点的变化:同样在实时分析中,我们有时候需要看到某个值得实时变化等. 要解决以上 ...

  10. 1267 - Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' | 1267 - Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (Latin,COERCIBL)

    select * FROM information_schema.columns WHERE table_schema = "databaseName" and collation ...