修改Linux下MySQL表名大小写敏感

时间:2021-10-13 08:20:27

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 
  1、数据库名与表名是严格区分大小写的; 
  2、表的别名是严格区分大小写的; 
  3、列名与列的别名在所有的情况下均是忽略大小写的; 
  4、变量名也是严格区分大小写的; 
MySQL在Windows下都不区分大小写。

原因是:在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。

查看大小写是否敏感: 
mysql> show variables like ‘%case%’; 
+————————+——-+ 
| Variable_name | Value | 
+————————+——-+ 
| lower_case_file_system | OFF | 
| lower_case_table_names | 0 | 
+————————+——-+

处理方法: 
编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。

但是由于采用rpm安装方式,在/etc下并没有my.cnf这个文件,可以将/usr/local/mysql/support-files 下的my-default.cnf 拷贝到/etc下,修改为my.cnf。在最后增加一行:lower_case_table_names=1

最后,重启mysql即可。