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