个人的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 ...
随机推荐
- 如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)
上一节部署了只有一个副本的 Service,不过对于 web 服务,我们通常会运行多个实例.这样可以负载均衡,同时也能提供高可用. swarm 要实现这个目标非常简单,增加 service 的副本数就 ...
- AIO5物料清单(BOM)列表,搜索编码和名称无效
问题: AIO5物料清单(BOM)列表,搜索编码和名称无效.如图: 原因分析 AIO5的BOM是在二次开发平台上做的,在制作自定义单据的时候[查询参数设置]没有设置.如下图: 解决方案 工具:AIO5 ...
- Python爬虫知识点四--scrapy框架
一.scrapy结构数据 解释: 1.名词解析: o 引擎(Scrapy Engine)o 调度器(Scheduler)o 下载器(Downloader)o 蜘蛛(Spiders)o 项目管 ...
- OC的内存管理和@class
1. 基本原理 1. 什么是内存管理 ➢ 移动设备的内存极其有限,每个app所能占用的内存是有限制的 ➢ 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收 ...
- (12.05)Java小知识!
今天与大家分享关于抽象类的知识点. 抽象类: 抽象类应用场景:在某种情况下,某个父类只是知道子类应该包含怎样的方法,但无法准确的知道这些子类如何实现这些方法. 从多一个具有相同特征的类中抽象出一个抽 ...
- 利用vertical-align:middle垂直居中
以前总是以为vertical-align与text-align是同样的道理,一个是垂直居中,一个是水平居中,结果在这里一点效果也没有.事实上vertical-align与text-align完全不一样 ...
- OGNL简介
OGNL 一:OGNL简介 OGNL的全称是Object Graph Navigation Language即对象导航语音.它是一个开源项目,工作在视图层,用来取代页面中的java脚本.简化数据 ...
- JavaScript参考
要查看英语原文,请勾选"英语"复选框.也可将鼠标指针移到文本上,在弹出窗口中显示英语原文. 翻译 英语 JavaScript 语言参考 JavaScript 是一种可嵌入网页和其他 ...
- 来个Button看一看
0.目录 1.前言 2.基本属性与方法 3.点点更健康 4.我的Button有点多 5.震惊!TextView竟然... 1.前言 每次写代码总会忘记一些东西,又要重新Goooooooooogle,好 ...
- SQL Server学习之路(三):“增删改查”之“增”
0.目录 1.前言 2.通过SSMS添加数据 3.通过SQL语句添加数据 3.1 添加单条数据 3.2 添加多条数据 4.通过其他表导入数据 4.1 通过数据库中的其他表导入数据 4.2 通过exce ...