欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL修改lower_case_table_names參數(shù)的方法實(shí)踐

 更新時(shí)間:2024年05月24日 09:13:41   作者:AlfredZhao  
本文主要介紹了MySQL修改lower_case_table_names參數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

環(huán)境:MySQL 5.7.25

起初創(chuàng)建環(huán)境時(shí)沒有要求表名稱不區(qū)分大小寫,后續(xù)應(yīng)用使用提出要設(shè)置lower_case_table_names=1的需求,期望表名不再區(qū)分大小寫。
修改這個(gè)參數(shù)需要重啟實(shí)例,另外一定要注意該參數(shù)修改會(huì)導(dǎo)致之前大寫存儲(chǔ)的表將無法識(shí)別,需要特殊處理。

1.默認(rèn)區(qū)分大小寫的環(huán)境

默認(rèn)在lower_case_table_names=0的情況下,表名是嚴(yán)格區(qū)分大小寫的,若查詢時(shí)大小寫弄混淆就會(huì)直接報(bào)錯(cuò)表不存在,現(xiàn)象如下:

root@mysqldb 12:33:  [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| T1             |
| t2             |
+----------------+
2 rows in set (0.00 sec)

root@mysqldb 12:33:  [test]> show variables like '%case%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 0     |
+------------------------+-------+
2 rows in set (0.02 sec)

root@mysqldb 12:34:  [test]> select * from T1;
Empty set (0.00 sec)

root@mysqldb 12:34:  [test]> select * from t2;
Empty set (0.00 sec)

root@mysqldb 12:34:  [test]> select * from t1;
ERROR 1146 (42S02): Table 'test.t1' doesn't exist
root@mysqldb 12:34:  [test]> select * from T2;
ERROR 1146 (42S02): Table 'test.T2' doesn't exist
root@mysqldb 12:34:  [test]> 

2.修改參數(shù)lower_case_table_names

在my.cnf配置文件中[mysqld]標(biāo)簽的作用區(qū)域,增加`lower_case_table_names=1`的配置,然后重啟MySQL服務(wù):

service mysqld restart

3.驗(yàn)證表名區(qū)分大小寫情況

重啟實(shí)例后,確認(rèn)參數(shù)已修改:

root@mysqldb 12:58:  [test]> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)

發(fā)現(xiàn)原表t2,在參數(shù)修改后,通過t2和T2都可以訪問,滿足需求。
但是原表T1,在參數(shù)修改后,通過t1和T1都無法訪問,細(xì)看報(bào)錯(cuò)可以看到無論我們傳入T1還是t1,都是按照小寫的t1來解析。

root@mysqldb 12:46:  [(none)]> use test
Database changed
root@mysqldb 12:46:  [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| T1             |
| t2             |
+----------------+
2 rows in set (0.01 sec)

root@mysqldb 12:46:  [test]> select * from t1;
ERROR 1146 (42S02): Table 'test.t1' doesn't exist
root@mysqldb 12:47:  [test]> select * from T2;
Empty set (0.01 sec)

root@mysqldb 12:47:  [test]> select * from T1;
ERROR 1146 (42S02): Table 'test.t1' doesn't exist
root@mysqldb 12:47:  [test]> select * from t2;
Empty set (0.00 sec)

如果此時(shí)應(yīng)用再重新創(chuàng)建T1表,就會(huì)被存儲(chǔ)為小寫的t1:

root@mysqldb 13:03:  [test]> create table T1(id int);
Query OK, 0 rows affected (0.08 sec)

root@mysqldb 13:03:  [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| T1             |
| t1             |
| t2             |
+----------------+
3 rows in set (0.00 sec)

root@mysqldb 13:03:  [test]> select * from T1;
Empty set (0.00 sec)

root@mysqldb 13:03:  [test]> select * from t1;
Empty set (0.00 sec)

至于之前的T1,如果想要清理刪除,可改回lower_case_table_names=0后進(jìn)行刪除。

總結(jié):如果有不區(qū)分大小寫這樣的需求,在建庫(kù)配置時(shí)就要及早提出,不然后期更改不但要停機(jī),還很可能需要特殊處理。
如果不幸遇到這樣的情況,操作之前先使用mysqldump進(jìn)行導(dǎo)出備份,然后刪除所有含有大寫的表,成功修改參數(shù)后再進(jìn)行導(dǎo)入即可。

到此這篇關(guān)于MySQL修改lower_case_table_names參數(shù)的文章就介紹到這了,更多相關(guān)MySQL lower_case_table_names修改參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IP處理函數(shù)inet_aton()和inet_ntoa()使用說明

    IP處理函數(shù)inet_aton()和inet_ntoa()使用說明

    IP處理函數(shù)inet_aton()和inet_ntoa()使用說明,需要的朋友可以參考下
    2012-03-03
  • MySQL中常見的八種SQL錯(cuò)誤用法示例

    MySQL中常見的八種SQL錯(cuò)誤用法示例

    這篇文章主要給大家介紹了關(guān)于MySQL中常見的八種SQL錯(cuò)誤用法示例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • MySQL按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法總結(jié)

    MySQL按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法總結(jié)

    在本篇MYSQL的內(nèi)容里,我們給大家整理了關(guān)于按時(shí)間統(tǒng)計(jì)數(shù)據(jù)的方法內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • MySQL數(shù)據(jù)庫(kù)恢復(fù)(使用mysqlbinlog命令)

    MySQL數(shù)據(jù)庫(kù)恢復(fù)(使用mysqlbinlog命令)

    binlog是通過記錄二進(jìn)制文件方式來備份數(shù)據(jù),然后在從二進(jìn)制文件將數(shù)據(jù)恢復(fù)到某一時(shí)段或某一操作點(diǎn)。
    2011-08-08
  • mysql之?dāng)?shù)據(jù)庫(kù)常用腳本總結(jié)

    mysql之?dāng)?shù)據(jù)庫(kù)常用腳本總結(jié)

    這篇文章主要介紹了mysql之?dāng)?shù)據(jù)庫(kù)常用腳本總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 在SpringBoot中實(shí)現(xiàn)WebSocket會(huì)話管理的方案

    在SpringBoot中實(shí)現(xiàn)WebSocket會(huì)話管理的方案

    在構(gòu)建實(shí)時(shí)通信應(yīng)用時(shí),WebSocket 無疑是一個(gè)強(qiáng)大的工具,SpringBoot提供了對(duì)WebSocket的支持,本文旨在探討如何在 Spring Boot 應(yīng)用中實(shí)現(xiàn) WebSocket 會(huì)話管理,我們將通過一個(gè)模擬的場(chǎng)景一步步展開討論,需要的朋友可以參考下
    2023-11-11
  • MySQL 實(shí)用命令

    MySQL 實(shí)用命令

    對(duì)于剛接觸到mysql的朋友,需要的了解下,mysql的一些小技巧。
    2009-03-03
  • Mysql數(shù)據(jù)庫(kù)的日志管理、備份與回復(fù)詳細(xì)圖文教程

    Mysql數(shù)據(jù)庫(kù)的日志管理、備份與回復(fù)詳細(xì)圖文教程

    備份的主要目的是災(zāi)難恢復(fù),備份還可以測(cè)試應(yīng)用、回滾數(shù)據(jù)修改、查詢歷史數(shù)據(jù)、審計(jì)等,這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫(kù)的日志管理、備份與回復(fù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • MySQL?Online?DDL原理解析

    MySQL?Online?DDL原理解析

    MySQL原生OnlineDDL通過允許在表可用的情況下執(zhí)行DDL操作,大大提升了數(shù)據(jù)庫(kù)的可用性,通過不同的執(zhí)行算法,如COPY、INPLACE和INSTANT,它支持在線修改數(shù)據(jù)庫(kù)結(jié)構(gòu),優(yōu)化了數(shù)據(jù)庫(kù)維護(hù)流程,本文給大家介紹MySQL?Online?DDL原理,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • 數(shù)據(jù)庫(kù)賬號(hào)密碼加密詳解及實(shí)例

    數(shù)據(jù)庫(kù)賬號(hào)密碼加密詳解及實(shí)例

    這篇文章主要介紹了數(shù)據(jù)庫(kù)賬號(hào)密碼加密詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評(píng)論