【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
系列目录
一、安装MySql
二、安装并破解Navicat
三、没有my.in配置文件怎么办
四、设置MySql的大小写敏感
五、重置MySql登陆密码
这一篇可以说是我的踩坑的血泪史了。。。
MySql在Windows下默认是大小写不敏感的,当表名中有大写字母的时候,MySql会直接把它转化成小写之后存储。
如果想要设置大小写敏感,方法网上一搜一大把,整体思路是:
在MySql的程序目录下有一个配置文件叫“my.ini”

我们只需要用记事本打开它,然后在[mysqld]标记下添加一行代码:
lower_case_table_names =
保存之后重启MySql服务就可以了。
思路很清晰,步骤看着也很简单,但是这里面遍布的大大小小无数的坑。。。下面我就来挨个踩踩填填~
坑No.1:MySql程序文件夹下没有my.ini文件
这里有两种情况,跟安装MySql的方式有关。
针对Windows系统,MySql官网(https://dev.mysql.com/downloads/mysql/)给了两种安装方式:
一种是下载MSI安装,这种安装模式和一般的软件安装程序一样,运行之后系统会有一个引导程序,你只需要一直点击“下一步”就能安装完成;
另一种是下载ZIP文件安装,这种方式下载解压之后,解压出来的文件就是MySql程序本身,不需要执行安装程序,可以直接使用。


针对第一种情况,MSI安装,安装之后系统是会自动生成my.ini配置文件的,如果在主程序文件目录找不到,那么可以去你安装MySql的磁盘下的ProgramData文件下找找,一般的默认路径是:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
这我很早之前装的版本,位置是这样的:

针对第二种,ZIP安装,这种安装模式是没有my.ini配置文件的。。。需要自己新建一个my.ini文件,然后绑定到MySql服务。
具体怎么新建怎么绑定,可以参考前一章内容“三、没有my.in配置文件怎么办”,这一章主要讲采坑,细节就不讲了~
坑No.2:到底是0、1还是2
my.ini下设置大小写敏感的语句是:
lower_case_table_names = x
这里的x到底应该写0还是1还是2?
网上这三种版本都有,还有说是跟MySql的版本有关的。
其实,0,1,2这三个数字全都是合法的,而且它们所代表的意思都不一样:
#If set to , table names are stored as specified and comparisons are case sensitive.
#If set to , table names are stored in lowercase on disk and comparisons are not case sensitive.
#If set to , table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.
lower_case_table_names = 2
简单说,就是;
:存储和比较都是大小写敏感的,比如:新建一张表叫“TestTable”,再建一张表叫“testtable”也是可以的 :大小写不敏感,新建的时候系统会同意转化成小写 :存储大小写敏感,但是比较的时候会转化为小写比较,比如:新建一张表叫“TestTable”,显示的时候是大小写都有的,但是当再新建一张“testtable”的时候就会报错,因为比较是统一转换成小写比较的。
如果想设置大小写敏感的话,个人建议,尽量不要使用0,而使用2。
当然,有特殊需求的话,非要使用0也是可以的。
坑No.3:在my.ini添加了大小写敏感之后无法启动MySql服务
这一个应该是最大的坑了。
当在my.ini文件下添加“lower_case_table_names = 2”后,重启服务,却显示:

或者是这样:

然后,把这行设置从my.ini删除之后,就又可以启动服务了。
明明是按照网上说的步骤一步一步来的,怎么就报错了呢?
最后被逼无奈,只能去翻MySQl的官方文档。
然后就发现了下面这段话:
lower_case_table_names can only be configured when initializing the server.
Changing the lower_case_table_names setting after the server is initialized is prohibited.
意思是大小写敏感只能在安装MySql初始化之前设置,之后是不行的。。。
解决办法是要先删除服务,然后在my.ini文件下编辑好大小写敏感设置,编辑好之后再去使用这个my.ini文件安装初始化MySql(详细步骤在前一章“三、没有my.in配置文件怎么办”)
最后,终于设置成功:

BTW,可能是因为MySql版本不同原因,我的另一台电脑在my.ini下添加了大小写敏感之后,重启服务竟然直接成功了,然直接成功,直接成功了,接成功了,成功了,功了,了。。。

唉踩坑踩的太累,已然没有心情再去关注到底哪个版本需要哪个版本不需要。。。
先这样吧,希望看到这篇文章的人以我为鉴,不要再像我一样被坑了~
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)的更多相关文章
- 复杂业务下向Mysql导入30万条数据代码优化的踩坑记录
从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负责的模块connector就派上了用场. ...
- 【详记MySql问题大全集】三、安装之后没有my.ini配置文件怎么办
系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 之前说过,Windows操作系统中,我们安装M ...
- 【详记MySql问题大全集】一、安装MySql
最近公司要从SqlServer转到MySql,期间在安装环境和数据迁移的过程中,遇到了一些不大不小问题,比如怎么重置密码.怎么设置大小写敏感等等. 这些问题都比较细比较杂,这边解决完可能过几天就忘了, ...
- Mysql初识数据库《四》mysql安装与基本管理
一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...
- 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...
- MySQL 已有大数据量表进行分区踩坑
一.背景mysql 表中已有 4 亿数据,为提高查询效率,需创建分区,一开始计划是创建 HASH 分区,结果报错:ERROR 1659 (HY000): Field 'partno' is of a ...
- 【详记MySql问题大全集】二、安装并破解Navicat
Navicat for MySql 11.1.13 企业版 下载地址: 链接:https://pan.baidu.com/s/1N3ZQXNyx-W8D4AsuZdsMug 密码:x0rd 第二个是N ...
- MySQL性能优化(四)-- MySQL explain详解
前言 MySQL中的explain命令显示了mysql如何使用索引来处理select语句以及连接表.explain显示的信息可以帮助选择更好的索引和写出更优化的查询语句. 一.格式 explain + ...
- mysql由浅入深探究(四)----mysql事务详解
什么是事务: 通俗的解释就是对数据库进行的一组完整的操作,这组完整的操作中包含一个或多个操作.解释的太low了,来点官方的:事务就是DBMS中执行的一个完整的逻辑单元,这个逻辑单元中包含一个或者多个操 ...
随机推荐
- Workerman创建聊天室实例
// 标记是全局启动 define('GLOBAL_START', 1); require_once __DIR__ . '/Workerman/Connection.php'; require_on ...
- skynet记录6:定时器
稍后填坑 kernel中,每一次时钟中断会trap到kernel code,这个时间间隔称之为jiffies,每秒钟发生的次数为HZ 如果是4核,分配到每个核就是HZ/4 cat /boot/conf ...
- LR回放https协议脚本失败:[GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX" failed:[10054] Connection reset by peer [MsgId:MERR-27780]
Loadrunner默认发送是通过sockets(将http转换为sockets)发送的,而sockets默认SSL的版本为SSL2和SSL3.HTTPS协议录制的脚本以SSL3版本回放时会使sock ...
- 20165213 Exp4 恶意代码分析
恶意代码分析 实践目标 1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sy ...
- Task与线程池
尽量使用Task,而不是线程池 因为Task是基于线程的,单不是一一对应的 Task的切换与开销要比线程小很多,也更容易管理 http://www.cnblogs.com/yunfeifei/p/41 ...
- 数据流图——从软考真题中学画数据流图DFD
文章目录 题目 画顶层图 画0层图 解题技巧 题目 建议将题目复制到word后与此文分屏查看.后面需要多次查看题目. 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩, ...
- Python从入门到精通之Fifth!
字典 类名:dict 字典是无序的. 字典的创建 info = {"k1":{1:"abc",[1,2,3]},"k2":True} ...
- C++数论板题(弹药科技):Lengendre定理和欧拉函数
弹药科技 时间限制: 1 Sec 内存限制: 128 MB 题目描述 经过精灵族全力抵挡,精灵终于坚持到了联络系统的重建,于是精灵向人类求助, 大魔法师伊扎洛决定弓}用博士的最新科技来抗敌. 伊扎洛: ...
- P4178 Tree
最简单的点分治 淀粉质的思想: “分而治之”,缩小问题规模,合并求解: #include<cstdio> #include<cmath> #include<cstring ...
- KITTI数据集的使用——雷达与相机的数据融合
目录 目的 如何实现 kitti数据集简介 kitti数据集的raw_data 利用kitti提供的devkit以及相应数据集的calib文件 解读calib文件夹 解读devkit 目的 使用雷达点 ...