最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql中如何設(shè)置大小寫(xiě)不敏感

 更新時(shí)間:2023年04月12日 15:34:19   作者:Hehuyi_In  
這篇文章主要介紹了mysql中如何設(shè)置大小寫(xiě)不敏感問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql設(shè)置大小寫(xiě)不敏感

原理與參數(shù)

mysql大小寫(xiě)敏感配置與兩個(gè)參數(shù)相關(guān) —— lower_case_file_system 和 lower_case_table_names

查看當(dāng)前mysql的大小寫(xiě)敏感配置

show global variables like '%case%';
?
+------------------------+-------+
| Variable_name ? ? ? ? ?| Value |
+------------------------+-------+
| lower_case_file_system | ON ? ?|
| lower_case_table_names | 0 ? ? |
+------------------------+-------+
lower_case_file_system:表示當(dāng)前系統(tǒng)文件是否大小寫(xiě)敏感(ON為不敏感,OFF為敏感),只讀參數(shù),無(wú)法修改。
lower_case_table_names:表示表名是否大小寫(xiě)敏感,可以修改。
lower_case_table_names = 0時(shí),mysql會(huì)根據(jù)表名直接操作,大小寫(xiě)敏感。?
lower_case_table_names = 1時(shí),mysql會(huì)先把表名轉(zhuǎn)為小寫(xiě),再執(zhí)行操作。?

修改前準(zhǔn)備

由于lower_case_table_names = 1時(shí),mysql會(huì)先把表名轉(zhuǎn)為小寫(xiě),如果建表時(shí)表名是大寫(xiě)的,設(shè)置完大小寫(xiě)不敏感后就會(huì)查不到。

感覺(jué)類(lèi)似Oracle建表寫(xiě)create table "test" 之后用select * from test就查不到,因?yàn)镺racle自動(dòng)把test轉(zhuǎn)成了大寫(xiě)。

所以我們需要先把庫(kù)里所有表名改為小寫(xiě)。mysql中沒(méi)有自帶方法,可以寫(xiě)個(gè)存儲(chǔ)過(guò)程修改。

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)用存儲(chǔ)過(guò)程?
#call lowercase('TEST');
#TEST為你想要修改的數(shù)據(jù)庫(kù)的名稱(chēng)

正式設(shè)置 

vi my.cnf文件,設(shè)置 lower_case_table_names = 1 ,重啟mysql后生效

vi my.cnf
#添加
lower_case_table_names = 1

mysql大小寫(xiě)不敏感,設(shè)置不生效的解決

最近mysql測(cè)試環(huán)境碰到環(huán)境碰到了一個(gè)問(wèn)題。希望mysql大小寫(xiě)不敏感,但是設(shè)置大小寫(xiě)敏感不生效?

首先介紹一下我的mysql版本,mysql使用docker安裝。mysql版本為:5.7.22。

解決思路

1:查詢(xún)msyql的大小寫(xiě)敏感參數(shù)

show global variables like '%lower_case%';

若lower_case_table_names = 0,則大小寫(xiě)敏感,需要設(shè)置參數(shù)。

2:更改mysql配置文件參數(shù)

因mysql容器啟動(dòng)命令有做了配置文件映射,直接修改配置文件參數(shù)即可。

mysql容器啟動(dòng)命令

docker run --name mysql5.7.22_1502 -v /softdata/mysql/config:/etc/mysql/ -v /softdata/mysql/data:/var/lib/mysql ?-p 1502:3306 -e MYSQL_ROOT_PASSWORD=zyc1233 -d mysql:5.7.22?

修改/softdata/mysql/config/my.cnf 如下:

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
lower_case_table_names=1
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

3:再次查詢(xún)msyql的大小寫(xiě)敏感參數(shù)

show global variables like '%lower_case%';
#還是顯示lower_case_table_names = 0

4:查詢(xún)mysql日志

通過(guò)查詢(xún)mysql日志,發(fā)現(xiàn)以下信息

Warning: World-writable config file ‘/etc/mysql/my.cnf' is ignored
#mysql的配置文件被忽略了,why?

注意兩個(gè)單詞World-writable,意味著mysql的配置文件任何人都可寫(xiě),mysql認(rèn)為這不安全,于是忽略了這個(gè)配置文件。

5:更改mysql的配置文件

chmod 644 /softdata/mysql/config
#my.cnf設(shè)置為當(dāng)前用戶(hù)可讀寫(xiě),其他用戶(hù)不可寫(xiě),只讀.

6:重啟mysql,再次查詢(xún)msyql的大小寫(xiě)敏感參數(shù)

docker restart mysql

show global variables like '%lower_case%';#lower_case_table_names =1
#mysql 設(shè)置大小寫(xiě)不敏感成功

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 探討SQL利用INFORMATION_SCHEMA系統(tǒng)視圖如何獲取表的主外鍵信息

    探討SQL利用INFORMATION_SCHEMA系統(tǒng)視圖如何獲取表的主外鍵信息

    本篇文章是對(duì)SQL利用INFORMATION_SCHEMA系統(tǒng)視圖如何獲取表的主外鍵信息進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 一文教你快速學(xué)會(huì)使用DDL對(duì)數(shù)據(jù)庫(kù)和表的操作

    一文教你快速學(xué)會(huì)使用DDL對(duì)數(shù)據(jù)庫(kù)和表的操作

    SQL是一種操作關(guān)系型數(shù)據(jù)庫(kù)的結(jié)構(gòu)化查詢(xún)語(yǔ)言,今天這篇文章將詳細(xì)講述數(shù)據(jù)定義語(yǔ)言DDL對(duì)數(shù)據(jù)庫(kù)和表的相關(guān)操作,有感興趣的同學(xué)跟著小編一起來(lái)學(xué)習(xí)吧
    2023-07-07
  • mysql in語(yǔ)句子查詢(xún)效率慢的優(yōu)化技巧示例

    mysql in語(yǔ)句子查詢(xún)效率慢的優(yōu)化技巧示例

    本文介紹主要介紹在mysql中使用in語(yǔ)句時(shí),查詢(xún)效率非常慢,這里分享下我的解決方法,供朋友們參考。
    2017-10-10
  • MySQL使用Xtrabackup備份流程詳解

    MySQL使用Xtrabackup備份流程詳解

    這篇文章主要介紹了MySQL使用Xtrabackup備份流程詳解,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • MySQL ALTER命令使用詳解

    MySQL ALTER命令使用詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL ALTER命令的使用方法,簡(jiǎn)單實(shí)用,感興趣的小伙伴們可以參考一下
    2016-05-05
  • MySQL時(shí)間溢出原理、影響與解決方案

    MySQL時(shí)間溢出原理、影響與解決方案

    本文將手把手帶您了解mysql時(shí)間溢出原理、實(shí)戰(zhàn)影響與全面解決方案,所有代碼均通過(guò)dblens for mysql數(shù)據(jù)庫(kù)工具驗(yàn)證,推薦使用該工具進(jìn)行可視化數(shù)據(jù)庫(kù)管理和開(kāi)發(fā),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-03-03
  • 詳解MySQL主從不一致情形與解決方法

    詳解MySQL主從不一致情形與解決方法

    這篇文章主要介紹了詳解MySQL主從不一致情形與解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Mysql事務(wù)特性和級(jí)別原理解析

    Mysql事務(wù)特性和級(jí)別原理解析

    這篇文章主要介紹了Mysql事務(wù)特性和級(jí)別原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • windows10下mysql 8.0 下載與安裝配置圖文教程

    windows10下mysql 8.0 下載與安裝配置圖文教程

    這篇文章主要介紹了windows10下mysql 8.0 下載與安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Mysql開(kāi)啟慢SQL并分析原因

    Mysql開(kāi)啟慢SQL并分析原因

    今天小編就為大家分享一篇關(guān)于Mysql開(kāi)啟慢SQL并分析原因,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04

最新評(píng)論

凤庆县| 阿荣旗| 大埔县| 正宁县| 辽阳县| 天门市| 河南省| 鄂托克旗| 门头沟区| 呼图壁县| 鄂尔多斯市| 理塘县| 嘉祥县| 邹城市| 玛纳斯县| 乐业县| 阿城市| 泽普县| 海兴县| 布拖县| 怀来县| 万山特区| 咸宁市| 旬邑县| 宜都市| 隆昌县| 宜君县| 五大连池市| 海林市| 灵川县| 新源县| 林西县| 上杭县| 武义县| 太康县| 扶沟县| 屯昌县| 讷河市| 中阳县| 叶城县| 耒阳市|