天翼雲RDS資料庫如何修改資料庫引數

天翼雲開發者社群發表於2022-03-23

天翼雲RDS資料庫支援修改資料庫引數。最近遇到幾個使用者反饋要求天翼雲對MySQL RDS資料庫的庫表名修改為大小寫不敏感,這可以通過修改RDS資料庫的引數來實現。今天就用這個例項來講解一下天翼雲RDS如何修改資料庫引數。

MySQL資料庫對庫表名稱大小寫是否敏感和MySQL執行的作業系統有關,因為Windows作業系統對大小寫不敏感所以執行在Windows上的MySQL資料庫對大小寫也不敏感,而Linux作業系統對大小寫敏感所以執行在Linux上的MySQL資料庫預設情況下對大小寫敏感。天翼雲MySQL RDS資料庫的庫表名稱預設對大小寫敏感,這意味著在資料庫裡 users 表和 Users 表被視為兩個表,那麼應用軟體在進行資料庫連線時必須確保資料庫表名稱的大小寫是正確的。

舉個例子,現在有一個資料庫名為Test,裡面有一個表名稱是 Users,如果使用sql語句 select * from test.users 查詢,MySQL將返回提示 test.users表不存在,必須使用 select * from Test.Users才可以查詢到正確的結果。

mysql> select * from test.users;

ERROR 1146 (42S02): Table 'test.users' doesn't exist

mysql> select * from Test.Users;

+--------+

| name   |

+--------+

| 張三   |

| 李四   |

+--------+

2 rows in set (0.00 sec)

由於各種原因,開發人員忽略了大小寫問題,就會造成在開發環境下能正常執行的程式移植到天翼雲RDS資料庫後有問題。

下面我們就來通過配置天翼雲RDS資料庫的lower_case_table_names引數來解決這個問題。

一、將資料庫的庫表名稱都改為小寫

如果需要使MySQL資料庫忽略大小寫,需要先手動把資料庫的庫名、表名都改成小寫。

庫名如果有大寫,需要重新建庫來解決。表名可以使用rename命令來修改,本文不再討論。

如果只是修改其它引數,可略過第一步。

二、建立一個新的RDS引數組

首先登入天翼雲關係型資料庫控制檯,點選進入引數組配置。

引數組中已經有MySQL、PostgreSQL和SQLServer資料庫的預設引數組。預設引數組不能修改,因此我們需要建立一個新的引數組。

點選頁面上方的“建立引數組”按鈕,然後選擇需要建立的資料庫型號及版本。本例中使用的資料庫為MySQL 5.6,因此引數組系列要選擇 MySQL 5.6。點選確定完成建立。

 

 

三、修改引數

      在引數組列表中找到剛剛新建的引數組,點選編輯按鈕進入引數編輯模式。

 


進入編輯模式後,頁面已列出該資料庫支援的所有引數。 頁面上“是否可修改欄”欄顯示為“是”的引數,表示這個引數可以修改。“是否需要重啟”欄顯示為“是”的引數,表示這個引數修改後,需要重啟RDS資料庫才能生效,顯示為“否”的引數可以立即生效,不需要重啟。 同時列表中還對引數的功能有簡略的描述。

 

       對應到文章開頭提到的設定庫表大小寫不敏感,需要修改lower_case_table_names引數由0改為1。可以在右上角的搜尋框中輸入lower_case_table_names,快速找到這個引數。點選值這一列,設定lower_case_table_names這個引數為1,然後點選儲存按鈕使配置生效。

 

四、應用引數組到資料庫例項

      現在RDS資料庫還是使用的預設引數組,需要把引數組改為剛才經過修改的引數組。

      點選進入RDS例項管理,找到正在使用RDS例項。點選主例項行所在的“管理按鈕”

 

     選擇到“配置引數組”頁面,在“新引數組”下拉中選擇第二步建立的引數組,再點選提交。

 

 

五、重啟RDS資料庫例項使配置生效

因為 lower_case_table_names 這個引數是需要重啟RDS例項才能生效的,因此還需要重啟RDS例項。

回到RDS例項管理,點選“重啟”按鈕使配置生效。

 

六、驗證

RDS例項重啟後,MySQL資料庫就對大小寫不敏感了,select * from Test.Users 和 select * from test.users 兩條SQL語句都能成功執行了。

mysql> select * from Test.Users;

+--------+

| name   |

+--------+

| 張三   |

| 李四   |

+--------+

2 rows in set (0.00 sec)

mysql> select * from test.users;

+--------+

| name   |

+--------+

| 張三   |

| 李四   |

+--------+

2 rows in set (0.00 sec)


總結

天翼雲RDS資料庫預設已經對資料庫進行了很多優化和配置,如果想根據業務需求修改更多的高階配置,就可以根據本文的方法進行進一步的優化配置

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2883466/,如需轉載,請註明出處,否則將追究法律責任。

相關文章