linux下mysql表名大小寫敏感的問題

2022-03-06 09:55:50 字數 1311 閱讀 7500

執行sql:

lower_case_file_system:表示當前系統檔案是否大小寫敏感,唯讀引數,無法修改

on 大小寫不敏感

off 大小寫敏感

lower_case_table_names:這個選項不僅僅適用於表名的大小寫敏感,同樣適用於資料庫名和表別名。

該變數取值範圍有三個,分別是0、1、2.

設定成0:表名按你寫的sql大小寫儲存,大寫就大寫小寫就小寫,比較時大小寫敏感。

設定成1:表名轉小寫後儲存到硬碟,比較時大小寫不敏感。

設定成2:表名按你寫的sql大小寫儲存,大寫就大寫小寫就小寫,比較時統一轉小寫比較。

修改方法:

//1.首先進入到docker中的mysql容器,9b33e00a9488為mysql的容器id:

docker exec -it 9b33e00a9488 /bin/bash

//2.安裝vim編輯器,方便修改配置檔案(以下兩個命令都是在進入mysql容器後輸入的)

//同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟體包。

apt-get update

apt-get install vim

//3.修改mysql的配置檔案,如果你不想修改,只是想檢視下檔案的話,那你不需要安裝vim編輯器,

// 可以直接使用cat my.cnf檢視

vim /etc/mysql/my.cnf

在[mysqld]下新增如下:

[mysqld]

lower_case_table_names=1

儲存,退出mysql容器;

執行docker restart mysql ,重啟mysql容器即可檢視

再一次輸入以上sql,可以看到結果:

備註:以上操作只適用於mysql5.7以前的版本,以後的版本如:

mysql8.0 新增了data dictionary的概念,資料初始化的時候在linux下預設使用lower-case-table-names=0的引數,資料庫啟動的時候

讀取的my.cnf檔案中的值。若二者值不一致則在mysql的錯誤日誌中記錄報錯資訊,參考

參考:mysql表名大小寫敏感導致的問題

解決docker安裝mysql不區分大小寫問題

設定Linux下Mysql表名不區分大小寫

1 linux下mysql安裝完後是預設 區分表名的大小寫,不區分列名的大小寫 2 用root帳號登入後,在 etc my.cnf中的 mysqld 後新增新增lower case table names 1,重啟mysql服務,這時已設定成功 不區分表名的大小寫 lower case table ...

設定Linux下Mysql表名不區分大小寫

設定linux環境下不區分大小 用root帳號登入後,在 etc my.cnf中的 mysqld 位置不要搞錯了 後新增新增lower case table names 1,重啟mysql服務。lower case table names引數詳解 lower case table names 0 其...

解決Linux下mysql區分表名大小寫的問題

mysql在linux下採用 rpm方式安裝後預設是 資料庫名與表名 表的別名 變數名是嚴格區分大小寫 1.用root帳號登入,etc mysql my.cnf中的 mysqld 後新增lower case table names 1 操作命令 vi etc my.cnf mysqld basic ...