首頁 > 軟體

MySQL資料庫設定資訊檢視與修改方法詳解

2022-06-23 14:02:15

摘要

當在不同團隊間使用MySQL資料庫時,最好是保證資料庫的設定資訊是一致的,否則會因為不同開發同事的SQL規範不一樣,導致出現一些不必要的SQL問題;

本篇部落格,主要記錄如何檢視資料的設定資訊,及相關解釋。

檢視

檢視資料基本資訊

檢視版本

檢視版本
select version();

顯示所有可用的字元集;
SHOW CHARACTER SET;

只顯示包含utf8的字元集;
SHOW CHARACTER SET LIKE '%utf8%';

顯示所有的校對規則;
SHOW COLLATION;

只顯示包含utf8的校對規則;
SHOW COLLATION LIKE '%utf8%';

查詢sql_mode

select @@global.sql_mode;

select @@sql_mode;

確保一致,否則容易出問題;

檢視在組態檔中定義的變數

mysqld --help --verbose

檢視MySQL的服務當前執行時的變數

SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE ''];
SELECT @@{GLOBAL|SESSION}.VARIABLE_NAME;
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='VARIABLE_NAME';
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='VARIABLE_NAME';

顯示MySQL所有的系統變數

SHOW VARIABLES;

常用查詢

查個別資訊,通過like過濾:

show variables like '%datadir%';
show variables like '%basedir%';

SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation_%';

是否大小寫敏感

show Variables like '%table_names';

lower_case_table_names=0 區分大小寫

lower_case_table_names=1 表示不區分大小寫

如何修改?

注意:

mysql 8.0以前,可以通過,先停止mysql服務,再修改組態檔(如lower_case_table_names=1),再重啟mysql服務的方式來修改;

mysql8.0 要求我們不能在initialize之後再更改lower_case_table_names 的值,也就是說,再通過更改 my.cnf 檔案是不管用的。所以需要刪除原來的所有資料,我的資料目錄是在/user/local/mysql/data/,進入到該目錄進行刪除,預設的路徑為:/var/lib/mysql 刪除該路徑下的所有檔案即可

檢視MySQL預設認證方式

show global variables like '%default_auth%';

也支援修改。詳見下面修改的章節。

舉例,下面是靜態修改:

# vi /etc/my.cnf

[mysqld]
default_authentication_plugin = mysql_native_password

修改MySQL的系統變數

根據變數修改的方式

動態變數:可以在MySQL執行時調整其指,並立即生效;

例如:

set global sort_buffer_size=value

靜態變數:需要在組態檔中修改,重啟服務後生效;例如:/etc/my.cnf

根據變數的生效範圍

全域性變數:服務級別的設定,對整個服務生效,所有回話,當時已經連線的不生效,重新連線才生效;
例如:

set global sort_buffer_size=value

對談變數:僅對當前對談生效,其他對談和新對談不受影響;對談結束值即銷燬;

例如:

set session sort_buffer_size=value

總結

到此這篇關於MySQL資料庫設定資訊檢視與修改的文章就介紹到這了,更多相關MySQL設定資訊檢視修改內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com