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

Linux環(huán)境下設(shè)置MySQL表名忽略大小寫的方法小結(jié)

 更新時(shí)間:2024年06月17日 11:06:18   作者:荒Huang  
在MySQL中,表名的大小寫敏感性取決于操作系統(tǒng)和MySQL的配置,在Unix/Linux系統(tǒng)上,表名通常是區(qū)分大小寫的,由于之前MySQL未設(shè)置忽略表名大小寫導(dǎo)致數(shù)據(jù)查詢失敗等問題,所以本文給大家介紹了Linux環(huán)境下設(shè)置MySQL表名忽略大小寫的方法,需要的朋友可以參考下

說明

本文檔適用于docker容器運(yùn)行的MySQL,修改MySQL表名忽略大小寫。

一、摘要

在MySQL中,表名的大小寫敏感性取決于操作系統(tǒng)和MySQL的配置。在Unix/Linux系統(tǒng)上,表名通常是區(qū)分大小寫的,而在Windows系統(tǒng)上則通常是不區(qū)分大小寫的。由于之前MySQL未設(shè)置忽略表名大小寫導(dǎo)致數(shù)據(jù)查詢失敗等問題。

二、查看服務(wù)器上MySQL情況

方式一:通過Linux方式

查看MySQL是否忽略了表名大小寫,先登錄MySQL(mysql -uroot -p),再通過命令查看目前MySQL忽略表名的情況(SHOW VARIABLES like "lower_case_table_names";)

方式二:借助可視化工具(Navicat)

連上服務(wù)器上對(duì)應(yīng)的MySQL服務(wù),新建查詢,如下圖所示:

三、MySQL設(shè)置忽略表名大小寫的參數(shù)(lower_case_table_names)

lower_case_table_names 可以設(shè)置為以下三個(gè)值之一:

0:區(qū)分大小寫。數(shù)據(jù)庫和表名在存儲(chǔ)和比較時(shí)都區(qū)分大小寫。在 Unix 和 Linux 系統(tǒng)上,這是默認(rèn)值。

1:不區(qū)分大小寫。數(shù)據(jù)庫和表名在存儲(chǔ)和比較時(shí)都不區(qū)分大小寫。在 Windows 系統(tǒng)上,這是默認(rèn)值。但請(qǐng)注意,即使設(shè)置為 1,在某些情況下(如使用 InnoDB 存儲(chǔ)引擎和 CREATE TABLE 語句中的引號(hào)),MySQL 仍然可能區(qū)分大小寫。

2:表名在存儲(chǔ)時(shí)區(qū)分大小寫,但在比較時(shí)不區(qū)分。這個(gè)設(shè)置很少使用,因?yàn)樗赡軐?dǎo)致混淆和不一致的行為。

注意:在安裝MySQL過程中,只有在初始化的MySQL情況下,更改lower_case_table_names的值。

四、網(wǎng)上解決方案

方法一:只修改my.cnf

1.添加lower_case_table_names=1

在服務(wù)器上找到my.conf文件,由于我是采取docker compose部署的MySQL,因此修改MySQL的配置文件后啟動(dòng)方式因自己安裝的方式而異。

#忽略表名大小寫
lower_case_table_names=1

在 [mysqld] 部分新增

2.保存并退出

3.重啟MySQL

問題:

問題描述:Different lower_case_table_names settings for server ('1') and data dictionary ('0').

出現(xiàn)問題是在重啟MySQL容器的時(shí)候報(bào)錯(cuò)。

方法二:臨時(shí)設(shè)置

注:重啟MySQL會(huì)失效

1.登錄MySQL

2.設(shè)置lower_case_table_names

SET GOLBAL lower_case_table_names = 1;

3.刷新權(quán)限

FLUSH PRIVILEGES;

問題:

1238 - Variable 'lower_case_table_names' is a read only variable

lower_case_table_names 是一個(gè)只讀的系統(tǒng)變量,這意味著你不能在 MySQL 服務(wù)器運(yùn)行時(shí)動(dòng)態(tài)地更改它的值。這個(gè)變量必須在 MySQL 服務(wù)器啟動(dòng)時(shí)從配置文件(通常是 my.cnfmy.ini,取決于你的操作系統(tǒng)和安裝方式)中讀取,或者在首次初始化數(shù)據(jù)目錄時(shí)設(shè)置。因此這個(gè)方案行不通。

五、解決方案(docker方式)

1.先備份MySQL數(shù)據(jù)庫數(shù)據(jù)

(1)通過命令去備份

mysqldump -uroot -p[密碼] [數(shù)據(jù)庫] > [備份的sql]

(2)采用工具備份,如Navicat

2.停止MySQL

3.找到MySQL數(shù)據(jù)存放路徑

4.備份數(shù)據(jù)目錄

cp -ar datadir datadir_old

5.清空之前的數(shù)據(jù)目錄

rm -rf datadir/*

6.配置docker compose的MySQL

注:如果之前存在先刪除之前舊的運(yùn)行MySQL容器。

在docker-compose.yml中配置MySQL。

mysql:
    restart: always
    image: mysql:8.0.35
    volumes:
      - ./mysql/datadir:/var/lib/mysql
      - ./mysql/conf/my.cnf:/etc/my.cnf
    environment:
      - "MYSQL_ROOT_PASSWORD=xxx"
      - "MYSQL_DATABASE=xxx"
      - "MYSQL_USER=xxx"
      - "MYSQL_PASSWORD=xxx"
      - "TZ=Asia/Shanghai"
    command: --lower_case_table_names=1  # 添加這一行來設(shè)置lower_case_table_names  
    ports:
      - "3306:3306"

配置如下:

7.重新用docker compose命令運(yùn)行一個(gè)MySQL容器

docker compose up -d mysql

8.查看啟動(dòng)日志

docker logs 容器名/容器id

若沒出現(xiàn)錯(cuò)誤即為,設(shè)置MySQL忽略表名大小寫成功。

9.將數(shù)據(jù)恢復(fù)

(1)將導(dǎo)出的數(shù)據(jù)原封導(dǎo)入到MySQL中

(2)將備份的數(shù)據(jù)目錄全部復(fù)制到現(xiàn)在MySQL目錄

10.驗(yàn)證

到此,MySQL更新lower_case_table_names=1,忽略表名大小寫完成。

以上就是Linux環(huán)境下設(shè)置MySQL表名忽略大小寫的方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于 Linux MySQL表名忽略大小寫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • mysql臨時(shí)變量的使用

    mysql臨時(shí)變量的使用

    這篇文章主要介紹了mysql臨時(shí)變量的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • MySQL系統(tǒng)庫之performance_schema的實(shí)現(xiàn)

    MySQL系統(tǒng)庫之performance_schema的實(shí)現(xiàn)

    performance_schema用于收集和存儲(chǔ)關(guān)于數(shù)據(jù)庫性能和資源利用情況的信息,本文主要介紹了MySQL系統(tǒng)庫之performance_schema的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • 解決mysql登錄報(bào)錯(cuò):mysql:[Warning] Using a password on the command line interface can be insecure.ERROR 10

    解決mysql登錄報(bào)錯(cuò):mysql:[Warning] Using a password&

    MySQL root登錄失敗多因密碼錯(cuò)誤,解決方法包括:檢查密碼是否正確,確認(rèn)對(duì)localhost的訪問權(quán)限,啟用并配置密碼驗(yàn)證機(jī)制,修改my.cnf文件后重啟服務(wù),若問題持續(xù),需聯(lián)系技術(shù)支持
    2025-07-07
  • Mysql中的Innodb事務(wù)和鎖詳解

    Mysql中的Innodb事務(wù)和鎖詳解

    這篇文章主要介紹了Mysql中的Innodb事務(wù)和鎖詳解,InnoDB是MySQL的一種存儲(chǔ)引擎,它是一種可靠性和性能非常好的存儲(chǔ)引擎,它具有ACID事務(wù)支持,可以提供高并發(fā)性和數(shù)據(jù)完整性,需要的朋友可以參考下
    2023-09-09
  • 一文帶你搞懂MySQL如何創(chuàng)建索引

    一文帶你搞懂MySQL如何創(chuàng)建索引

    這篇文章主要為大家詳細(xì)介紹了MySQL創(chuàng)建索引的相關(guān)知識(shí),包括索引的創(chuàng)建、使用與優(yōu)化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-04-04
  • MySQL的主從復(fù)制步驟詳解及常見錯(cuò)誤解決方法

    MySQL的主從復(fù)制步驟詳解及常見錯(cuò)誤解決方法

    這篇文章主要介紹了MySQL的主從復(fù)制步驟詳解及常見錯(cuò)誤解決方法,文中主張同步時(shí)跳過臨時(shí)錯(cuò)誤,并對(duì)Slave_IO_Running: No錯(cuò)誤的解決給出了方案,需要的朋友可以參考下
    2016-02-02
  • MySQL外鍵關(guān)聯(lián)操作的實(shí)現(xiàn)

    MySQL外鍵關(guān)聯(lián)操作的實(shí)現(xiàn)

    本文主要介紹了MySQL外鍵關(guān)聯(lián)操作的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • mysql主從同步異常原因及恢復(fù)

    mysql主從同步異常原因及恢復(fù)

    本文介紹了MySQL主從復(fù)制過程中常見的同步異常問題及其解決方法,包括auto.cnf配置問題、my.cnf配置問題及主庫重啟等場(chǎng)景下可能出現(xiàn)的問題及應(yīng)對(duì)措施,感興趣的可以了解一下
    2025-08-08
  • MySQL中int(10) 的 10代表什么

    MySQL中int(10) 的 10代表什么

    在MySQL中,我們定義int類型時(shí)需要設(shè)置長度,比如INT(10),那么10到底代表什么,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • MySQL之Field‘***’doesn’t have a default value錯(cuò)誤解決辦法

    MySQL之Field‘***’doesn’t have a default value錯(cuò)誤解決辦法

    這篇文章主要介紹了MySQL之Field‘***’doesn’t have a default value錯(cuò)誤解決辦法,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

苏州市| 松江区| 南丰县| 辰溪县| 宁河县| 安阳县| 阳信县| 营山县| 仁布县| 禄丰县| 亚东县| 上思县| 新化县| 沽源县| 长子县| 桐梓县| 津市市| 丰城市| 宜兰县| 金川县| 昌乐县| 高淳县| 荥阳市| 大庆市| 岑溪市| 平安县| 普兰店市| 奇台县| 惠安县| 新宾| 昭觉县| 彭水| 海兴县| 通榆县| 威信县| 温宿县| 白沙| 临漳县| 阳曲县| 鄂托克前旗| 上犹县|