應用場景:
本人由於專案前期使用windows版國產資料庫開發,預設就是大小寫不敏感
的,加上**規範約束不夠,導致**中sql大小寫不統一。後期有需求要更換資料庫,改用mysql,因為在linux系統中mysql預設是大小寫敏感的,所以需要對mysql進行大小寫敏感配置。
1.進入mysql docker容器bash
docker exec -it mysql bash
2.登入mysql
mysql -uroot -p123456
3.檢視"lower_case_table_names"
變數值
show global variables like '%lower_case%'
;
mysql> show global variables like '%lower_case%';+
----
----
----
----
----
----+--
-----+
| variable_name | value |+--
----
----
----
----
------+
-------
+| lower_case_file_system | off |
| lower_case_table_names |0|
+------
----
----
----
------+
-------
+2 rows in set (
0.02 sec)
4.編輯相關配置檔案
vim /etc/mysql/mysql.conf.d/mysqld.cnf
容器中如果沒有vim編輯器可自行安裝(參考)追加配置:
lower_case_table_names=1
「0」:大小寫敏感「1」:大小寫不敏感
"exit;"
退出容器後重啟mysql docker容器:
docker restart mysql
5.測試
進入mysql再次查詢lower_case_table_names
變數值為1
就表示設定成功:
mysql> show global variables like '%lower_case%';+
----
----
----
----
----
----+--
-----+
| variable_name | value |+--
----
----
----
----
------+
-------
+| lower_case_file_system | off |
| lower_case_table_names |1|
+------
----
----
----
------+
-------
+2 rows in set (
0.01 sec)
注意:
設定完後實際使用時一定要先將當前的資料庫名和表名轉換為小寫,不然會報找不到表的錯誤。所謂的大小寫不敏感,實際上是先把sql統一轉換成了小寫來查詢。 MYSQL如何設定大小寫敏感
1 linux下mysql安裝完後是預設 區分表名的大小寫,不區分列名的大小寫 2 用root帳號登入後,在 etc my.cnf 中的 mysqld 後新增新增 lower case table names 1重啟mysql服務,這時已設定成功 不區分表名的大小寫 lower case table...
MYSQL如何設定大小寫敏感
linux系統下 1 linux下mysql安裝完後是預設 區分表名的大小寫,不區分列名的大小寫 2 用root帳號登入後,在 etc my.cnf 中的 mysqld 後新增新增lower case table names 1,重啟mysql服務,這時已設定成功 不區分表名的大小寫 lower c...
MySQL的大小寫敏感設定
在 mysql 中,資料庫和表對就於那些目錄下的目錄和檔案。因而,作業系統的敏感性決定資料庫和表命名的大小寫敏感。這就意味著資料庫和表名在 windows 中是大小寫不敏感的,而在大多數型別的 unix 系統中是大小寫敏感的。奇怪的是列名與列的別名在所有的情況下均是忽略大小寫的,而表的別名又是區分大...