MySQL大小写
1.默认情况
- windows:啥都不区分大小写
- linux:
- 数据库名、表名、表的别名、变量名是严格区分大小写的
- 关键字、函数名称在 SQL 中不区分大小写
- 列名(或字段名)与列的别名(或字段别名)在所有的情况下均是忽略大小写的
2.查看是否区分大小写
命令
SHOW VARIABLES LIKE '%lower_case_table_names%'
返回值说明
- 0:大小写敏感
- 1:大小写不敏感。创建的表,数据库都是以小写形式存放在磁盘上,对于sql语句都是转换为小写对表和数据库进行查找
- 2:创建的表和数据库依据语句上格式存放,凡是查找都是转换为小写进行
3.修改大小写规则
注意
- 在MySQL8下禁止在重新启动MySQL服务时将lower_case_table_names设置成不同于初始化MySQL服务时设置的lower_case_table_names值
- 设置为1之前,要在重启数据库实例之前就需要将原来的数据库和表转换为小写,否则将找不到数据库名
- 此参数适用于MySQL5.7
文件修改方式
在my.cnf这个配置文件[mysqld]中加入lower_case_table_names=1 ,然后重启服务器
如果非要将MySQL8设置为大小写不敏感
- 停止MySQL服务
- 删除数据目录,即删除 /var/lib/mysql 目录
- 在MySQL配置文件( /etc/my.cnf )中添加 lower_case_table_names=1
- 启动MySQL服务