共計 1397 個字符,預計需要花費 4 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下如何解決 MySQL 數據庫大小寫敏感的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在 MySQL 中,數據庫對應數據目錄中的目錄。數據庫中的每個表至少對應數據庫目錄中的一個文件(也可能是多個,取決于存儲引擎)。因此,所使用操作系統的大小寫敏感性決定了數據庫名和表名的大小寫敏感性。這說明在大多數 Unix 中數據庫名和表名對大小寫敏感,而在 Windows 中對大小寫不敏感。一個顯著的例外情況是 Mac OS X,它基于 Unix 但使用默認文件系統類型(HFS+),對大小寫不敏感。
在 windows 下表名不區分大小寫,所以在導入數據后,有可能所有表名均為小寫,而再從 win 導入 linux 后,在調用時就容易出現大小寫的問題。例如:
第一點:程序調用表名為:codetc_Web;
第二點:導入 win 后變為 codetc_web;
第三點:再導入 linux 后也是 codetc_web,此時 linux 會區分表名的大小寫,則導致該表無法讀取。
在 linux 下 mysql 表名大小寫問題解決方法:
修改 my.cnf,一般位于:/etc/my.cnf,在該文件中找到 [mysqld] 節下加入如下語句(注意如果已經存在該語句,請將值改為 1 即可):
lower_case_table_names=1
1、Linux 下 mysql 安裝完后是默認:區分表名的大小寫,不區分列名的大小寫;
2、用 root 帳號登錄后,在 /etc/my.cnf 中的 [mysqld] 后添加添加 lower_case_table_names=1,重啟 MYSQL 服務,這時已設置成功:不區分表名的大小寫;
lower_case_table_names 參數詳解:
lower_case_table_names = 0 或 1
其中 0:區分大小寫,1:不區分大小寫
MySQL 在 Linux 下數據庫名、表名、列名、別名大小寫規則是這樣的:
1、數據庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;
MySQL 在 Windows 下都不區分大小寫的,如果需要在查詢時區分字段值的大小寫,則需要將查詢字段值需要設置 BINARY 屬性,設置的方法有如下幾種方法:
(1)創建時設置:
CREATE TABLE T(A VARCHAR(10) BINARY);
(2)使用 alter 修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
(3)mysql table editor 中直接勾選 BINARY 項。
要讓 mysql 查詢區分大小寫,可以:
select * from table_name where binary a like a%
select * from table_name where binary a like A%
也可以在建表時,加以標識
create table table_name(
a varchar (20) binary
)
以上是“如何解決 MySQL 數據庫大小寫敏感的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!