溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql修改大小寫參數(shù)注意事項(xiàng)

發(fā)布時(shí)間:2020-08-16 05:18:06 來(lái)源:ITPUB博客 閱讀:145 作者:shuangseqiu1 欄目:MySQL數(shù)據(jù)庫(kù)
原由:數(shù)據(jù)庫(kù)中原本參數(shù)lower_case_table_names的值為0,應(yīng)開(kāi)發(fā)要求需要修改為不區(qū)分大小寫,即修改為1。但是修改完之后,發(fā)現(xiàn)本來(lái)建立的大寫字母的表查不到。
修改過(guò)程
1,在參數(shù)文件中修改lower_case_table_names=1
2,重啟mysql服務(wù)
問(wèn)題:發(fā)現(xiàn)修改完之后,本來(lái)數(shù)據(jù)庫(kù)中有的大寫字母的表查不到了

測(cè)試:
1,首先設(shè)置庫(kù)為區(qū)分大小寫
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 0     |
+------------------------+-------+
1 row in set (0.00 sec)

2,創(chuàng)建2張有大寫字母的表
mysql>  create table Tt(id int);
Query OK, 0 rows affected (0.10 sec)

mysql>  create table tT(id int);
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| Tt             |
| tT             |
+----------------+
2 rows in set (0.00 sec)

3,修改參數(shù) /etc/my.cnf 中設(shè)置 lower_case_table_names = 1
重啟數(shù)據(jù)庫(kù)
查看此時(shí)參數(shù)的值
mysql> show  variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)


4,查看數(shù)據(jù)庫(kù)
mysql> select * From tT;
ERROR 1146 (42S02): Table 'test.tt' doesn't exist

mysql> select * From Tt ;
ERROR 1146 (42S02): Table 'test.tt' doesn't exist

問(wèn)題是:
發(fā)現(xiàn)當(dāng)修改lower_case_table_names = 1后,之前創(chuàng)建的表名都不識(shí)別了。

結(jié)論:
1、不能隨意修改數(shù)據(jù)庫(kù)的大小寫,否則大寫表名會(huì)認(rèn)不出來(lái)。
2、lower_case_table_names參數(shù)的修改是非動(dòng)態(tài)的,必須重啟數(shù)據(jù)庫(kù)。

如何修改大小寫格式:
如果原來(lái)所建立的數(shù)據(jù)庫(kù)都是大小寫敏感的,想要轉(zhuǎn)換為對(duì)大小寫不敏感,主要需要進(jìn)行以下三步。
1,將數(shù)據(jù)庫(kù)數(shù)據(jù)通過(guò)mysqldump導(dǎo)出
2,在my.cnf文件中更改lower_case_table_names =1,并重啟mysql數(shù)據(jù)庫(kù)。
3,將導(dǎo)出的數(shù)據(jù)導(dǎo)入mysql數(shù)據(jù)庫(kù)中


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI