mysql数据库表名大小写问题
mysql数据库linux版本表名、字段名默认大小写敏感,即区分大小写。
查看mysql有关大小写参数:
lower_case_file_system是一个只读参数,无法被修改,这个参数是用来告诉你在当前的系统平台(linux\windows等)下,是否对文件名大小写敏感。
lower_case_table_names表示表名大小写是否敏感,为0时为大小写敏感,为1时为大小写不敏感。
当lower_case_table_names参数为0时,且开启了innodb_file_per_table,创建的表如果都是大写字母,则以大写字母保存,如果都是小写字母,则以小写字母保存。如果大小写混写,则以大小写字母混合保存。
当lower_case_table_names参数为1时,所有的表结构都强制转为小写字母保存。
如果在lower_case_table_names=0时创建了表,且表结构有大写,那么在把lower_case_table_names参数改为1后,原包含大写字母的表就会找不到:
[Err] 1146 - Table 'dap.REDIS_INFO' doesn't exist
解决办法就是重新建表
lower_case_table_names参数设置方式
永久有效:
在my.cnf文件中的[mysqld]下加入一行:
lower_case_table_names=1
重启数据库
innodb_file_per_table参数表示在使用innoDB引擎时,是否开启独立表空间。
查看是否开启独立表空间:
innodb_file_per_table设置开启独立表空间方法:
在my.cnf中[mysqld]下设置
innodb_file_per_table=1
关闭独立表空间
innodb_file_per_table=0