首先對大小寫敏感的情況如下:
MySQL 在 Linux 下數據庫名、表名、列名、別名大小寫規則是這樣的:
1、數據庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;
MySQL 在 Windows 下都不區分大小寫。
修改方法:
編輯配置文件:my.cnf
在[mysqld]后添加/修改配置:lower_case_table_names=1
修改后請重啟數據庫生效。
注意事項:
lower_case_table_names=1,表名存儲在磁盤是小寫的,但是比較的時候是不區分大小寫
lower_case_table_names=0,表名存儲為給定的大小和比較是區分大小寫的
lower_case_table_names=2,表名存儲為給定的大小寫但是比較的時候是小寫的
如果建表時表名大小寫情況都有的話,修改后可能會對不上(比如1,之前存儲的時候是大寫,現在 mysql 回去找小寫表名,找不到,如果2的話,之前寫 sql 語句如果是大寫,也找不到)
如果原來所建立庫及表都是對大小寫敏感的,想要轉換為對大小寫不敏感,主要需要進行如下3步:
1、將數據庫數據通過mysqldump導出;
2、在my.cnf中更改lower_case_tables_name = 1,並重啟mysql數據庫;
3、將導出的數據再次導入。
參考: