个人的MySql配置总结
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配置总结的更多相关文章
- linux下安装apache与php;Apache+PHP+MySQL配置攻略
1.apache 在如下页面下载apache的for Linux 的源码包 http://www.apache.org/dist/httpd/; 存至/home/xx目录,xx是自建文件 ...
- MySQL 配置
MySQL 配置 1.服务启动: (1)使用 service 启动:service mysqld start (2)使用 mysqld 脚本启动:/etc/inint.d/mysqld start ( ...
- mysql配置mysql-proxy读写分离
MySQL配置读写分离 192.168.23.131与192.168.23.132两台服务器,131是主,132是从,131是读写,132是只读.myql-proxy的IP是192.168.23.13 ...
- mysql配置之skip-external-locking
转载:http://www.kuqin.com/database/20120815/328905.html MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参 ...
- MySQL配置
一.登录MySQL 要登录到MySQL只需要使用如下命令. mysql -h localhost -u root -p localhost:IP地址: root:用户名: database:数据库名( ...
- hive 的mysql配置
hive默认使用的是Derby数据库,Derby是一个嵌入式数据库,数据库一般创建在运行hive命令的目录,如果切换目录运行,则找不到数据库 hive mysql配置: 官网地址:https://cw ...
- 2016年5月19日php,mysql配置
1.php配置 1. 配置disable_functiondisable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshe ...
- CentOS6.5 MySQL 配置设置总结笔记
三.登录MySQL 登录MySQL的命令是mysql, mysql 的使用语法如下: mysql [-u username] [-h host] [-p[password]] [dbname] u ...
- MySql配置参数很全的Mysql配置参数说明
MySql配置参数 很全的Mysql配置参数说明 1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很 ...
- Ubuntu下MySql配置
Ubuntu下MySql配置 安装MySQL 命令: sudo apt-get install mysql-server MySQL初始配置及管理 启动MySQL mysql start : mysq ...
随机推荐
- [最短路]P1828 香甜的黄油 Sweet Butter
题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法:糖.把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油.当然,他将付出额外的费 ...
- 网络分析法(Analytic Network Process,ANP)
什么是网络分析法 网络分析法(ANP)是美国匹兹堡大学的T.L.Saaty教授于1996年提出的一种适应非独立的递阶层次结构的决策方法,它是在层次分析法(Analytic Hierarchy Proc ...
- js 事件冒泡和事件捕获
事件流:指的是网页中元素接受事件的顺序,它是一个概念,而不是具体的实际的东西 事件冒泡:指的是内层元素的事件,会触发包含着此元素的外层元素的事件,触发的顺序是:由内而外的 例如: <!DOCTY ...
- Jquery基础知识01
1:$(document).ready()function{}和window.onload()的区别. 1:$(document).ready()function{} 该方法等到Dom结构绘制完毕 ...
- Cracking the Coding Interview 题目分析笔记—— Array and String
1.Determine if a string has all unique characters learn: 为了减少空间利用率,其比较优秀的算法一般都适用位操作 返回值的命名方法,我们需要学习 ...
- sql执行时间过长,请高手指点!
需求:查询出每一位"社工员"通过23门社工课进度100%的数量和23门社工课对应的考试通过的数量. 业务解析: 1.社工员--针对特定学员的一批人.在表USERS_SW_REGIS ...
- OpenStack搭建遇到的问题2(组件配置错误了,别重装全部,就把模块卸载就行了)
apt-get remove -y mysql-server python-mysqldb 在装OpenStack的时候,出错的可能就是就是一个模块,比如keysstone或者是glance出错了,我 ...
- Django学习(1)一首情诗
Django是Python中Web开发的最有代表性的框架之一.本文将简单介绍如何入门Django开发. 首先确保你的linux系统已安装django模块.打开Python3,利用以下命令可找到djan ...
- Python函数篇(4)之迭代器与生成器
1.文件操作的"b模式"(补充) 在上一篇文章中,我在最后一部分写了文件处理的一些方法,但是觉得还是有必要再提一下如下的内容: 像rb.wb.ab这种模式,是以字节的形式操作,需要 ...
- Expected MultipartHttpServletRequest: is a MultipartResolver configured解决方案
异常信息: java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolv ...