關於 MySQL 中對數據庫表名大小寫敏感的問題


首先對大小寫敏感的情況如下:

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、將導出的數據再次導入。

 

參考:

https://www.cnblogs.com/aeolian/p/10131492.html

https://blog.csdn.net/xyajia/article/details/88164505


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM