MySQL大小寫敏感的控制
mysql是通過lower_case_table_names參數(shù)來控制大小寫敏感的
1:參數(shù)含義
lower_case_table_names: 此參數(shù)不可以動態(tài)修改,必須重啟數(shù)據(jù)庫
lower_case_table_names = 1 表名存儲在磁盤是小寫的,但是比較的時候是不區(qū)分大小寫
lower_case_table_names=0 表名存儲為給定的大小和比較是區(qū)分大小寫的
lower_case_table_names=2, 表名存儲為給定的大小寫但是比較的時候是小寫的
2 大小寫區(qū)分規(guī)則
linux下:
數(shù)據(jù)庫名與表名是嚴(yán)格區(qū)分大小寫的;
表的別名是嚴(yán)格區(qū)分大小寫的;
列名與列的別名在所有的情況下均是忽略大小寫的;
變量名也是嚴(yán)格區(qū)分大小寫的;
windows下:
都不區(qū)分大小寫
Mac OS下(非UFS卷):
都不區(qū)分大小寫
案列:
數(shù)據(jù)庫中存在edu_website_images表
select * from edu_website_images
通過大寫查詢報錯不存在
select * from EDU_WEBSITE_IMAGES
如何處理?
配置mysql配置文件
vi /etc/my.cnf 加入一行l(wèi)ower_case_table_names = 1
然后
有可能結(jié)果是上面的沒改過來...
我們把數(shù)據(jù)庫導(dǎo)出,重新創(chuàng)建一下數(shù)據(jù)庫結(jié)果就正確了