這篇文章將為大家詳細講解有關(guān)MySQL怎么設(shè)置大小寫不敏感,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
在索縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、網(wǎng)站制作 網(wǎng)站設(shè)計制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),索縣網(wǎng)站建設(shè)費用合理。
mysql設(shè)置大小寫不敏感的方法:
1、打開并編輯“my.cnf”文件;
2、查找“l(fā)ower_case_table_names”項,將該項的值設(shè)置為“1”;
3、重啟mysql即可。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、mysql8版本、Dell G3電腦。
一、 原理與參數(shù)
mysql大小寫敏感配置與兩個參數(shù)相關(guān) —— lower_case_file_system 和 lower_case_table_names
查看當前mysql的大小寫敏感配置
show global variables like '%case%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | ON | | lower_case_table_names | 0 | +------------------------+-------+
lower_case_file_system:表示當前系統(tǒng)文件是否大小寫敏感(ON為不敏感,OFF為敏感),只讀參數(shù),無法修改。
lower_case_table_names:表示表名是否大小寫敏感,可以修改。
lower_case_table_names = 0時,mysql會根據(jù)表名直接操作,大小寫敏感。
lower_case_table_names = 1時,mysql會先把表名轉(zhuǎn)為小寫,再執(zhí)行操作。
二、 修改前準備
由于lower_case_table_names = 1
時,mysql會先把表名轉(zhuǎn)為小寫,如果建表時表名是大寫的,設(shè)置完大小寫不敏感后就會查不到。感覺類似Oracle建表寫create table "test" 之后用select * from test就查不到,因為Oracle自動把test轉(zhuǎn)成了大寫。
所以我們需要先把庫里所有表名改為小寫。mysql中沒有自帶方法,可以寫個存儲過程修改。
DELIMITER // DROP PROCEDURE IF EXISTS lowercase // CREATE PROCEDURE lowercase(IN dbname VARCHAR(200)) BEGIN DECLARE done INT DEFAULT 0; DECLARE oldname VARCHAR(200); DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur; REPEAT FETCH cur INTO oldname; SET @newname = LOWER(oldname); #IF newname equals to oldname, do nothing; #select 'a' <> 'A'; -> 0 #select 'a' <> BINARY 'A'; -> 1 SET @isNotSame = @newname <> BINARY oldname; IF NOT done && @isNotSame THEN SET @SQL = CONCAT('rename table ',oldname,' to ',@newname); PREPARE tmpstmt FROM @SQL; EXECUTE tmpstmt; DEALLOCATE PREPARE tmpstmt; END IF; UNTIL done END REPEAT; CLOSE cur; END // DELIMITER ; #調(diào)用存儲過程 #call lowercase('TEST'); #TEST為你想要修改的數(shù)據(jù)庫的名稱
三、正式設(shè)置
vi my.cnf文件,設(shè)置 lower_case_table_names = 1 ,重啟mysql后生效
vi my.cnf #添加 lower_case_table_names = 1
關(guān)于mysql怎么設(shè)置大小寫不敏感就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
新聞標題:mysql怎么設(shè)置大小寫不敏感
當前網(wǎng)址:http://www.rwnh.cn/article0/gcgsoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)