linux下mysql預設是要區分表名大小寫的。mysql是否區分大小寫設定是由引數lower_case_table_names決定的,其中:
1)lower_case_table_names = 0
區分大小寫(即對大小寫不敏感),預設是這種設定。這樣設定後,在mysql裡建立的表名帶不帶大寫字母都沒有影響,都可以正常讀出和被引用。
2)lower_case_table_names = 1
不區分大小寫(即對大小寫敏感)。這樣設定後,表名在硬碟上以小寫儲存,mysql將所有表名轉換為小寫儲存和查詢表上。該行為也適合資料庫名和表的別名。
也就是說,mysql設定為不分割槽大小寫後,建立庫或表時,不管建立時使用大寫字母,建立成功後,都是強制以小寫儲存!
mysql在linux下資料庫名、表名、列名、別名大小寫規則是這樣的:
1)資料庫名與表名是嚴格區分大小寫的;
2)表的別名是嚴格區分大小寫的;
3)列名與列的別名在所有的情況下均是忽略大小寫的;
4)變數名也是嚴格區分大小寫的;
5)mysql在windows下都不區分大小寫,但是在linux下預設是區分大小寫的。
6)如果想在查詢時區分字段值的大小寫,則字段值需要設定binary屬性,設定的方法有多種:
a)建立時設定:
create table t(a varchar(10) binary);
b)使用alter修改
所以在不同作業系統中為了能使程式和資料庫都能正常執行,最好的辦法是在設計表的時候都轉為小寫!!
修改mysql為不區分大小寫設定:
mysqladmin -uroot -p shutdown //以安全模式關閉資料庫
修改 my.cnf //新增下面一行設定
.....
[mysqld]
lower_case_table_names=1
.....
啟動mysql
MySQL表名忽略大小寫
原來linux下的mysql預設是區分表名大小寫的,通過如下設定,可以讓mysql不區分表名大小寫 1 用root登入,修改 vi etc my.cnf 2 在 mysqld 節點下,加入一行 lower case table names 1,如下 mysqld datadir var lib my...
mysql 表名忽略大小寫修改
linux下mysql 預設是區分表的大小寫的,而一般擼碼的時候常常忽略大小寫,所以需要對linux下的mysq做些配置使其對錶的大小寫不敏感。首先登陸root 賬號,檢視當前mysql的狀態 mysql show variables like case variable name value lo...
mysql 忽略大小寫配置
引用 ps.新安裝linux系統,明明庫中包含表a,但log說就是沒有,仔細一看表名是大寫,靈機一動就想到大小寫敏感!坑這種東西,踩踩更健康!新安裝mysql5.7版本後,linux環境下預設是大小寫敏感的。可以在客戶端執行以下命令 show variables like case 可以看到 low...