2、mysql的啟動選項和配置檔案介紹
技術標籤:mysql & oracle & 資料庫
百因必有果
mysql服務端可以指定允許同時接入的客戶端數量max-connections、客戶端與伺服器的通訊方式、表的預設儲存引擎default_storage_engine等等設定項,使得我們可以更加靈活地使用它。
進入正題
我們講的是基於linux系統的,本文我們主要講一下:
1、有哪些常用的啟動選擇配置方式?
2、採用配置檔案 配置啟動選項有哪些注意點?配置檔案的優先順序?
3、如何檢視和設定系統變數?
> 有哪些常用的啟動選擇配置方式?
1、命令列配置
如:mysqld --skip-networking
該命令列表示啟動mysql服務端,同時服務端不允許客戶端通過tcp/ip方式連線上來。
2、配置檔案配置
如在/etc/my.cnf檔案下設定:
[mysqld]
skip-networking
>採用配置檔案 配置啟動選項有哪些注意點?配置檔案的優先順序?
1、配置檔案配置啟動選項時,可以有多個路徑進行配置,他們的依次順序為:
路徑 | 說明 |
---|---|
/etc/my.cnf | 系統級的配置 |
/etc/mysql/my.cnf | |
SYSCONFDIR/my.cnf | |
$MYSQL_HOME/my.cnf | 特定於伺服器的選項(僅限伺服器) |
defaults-extra-file | 命令列指定的額外配置檔案件路徑 |
~/.my.cnf | 使用者特定選項 |
~/.mylogin.cnf | 使用者特定的登入路徑選項(僅限客戶端) |
下面的配置檔案的配置會將上面的覆蓋,偏向於使用者自定義的配置會將系統級的配置覆蓋。
也就是說,如果你在/etc/my.cnf檔案下配置了:
[mysqld]
default_storage_engine=Innodb
而在 /etc/mysql/my.cnf 配置了
[mysqld]
default_storage_engine=MyIsam
那麼伺服器啟動後,表的儲存引擎採用的是 MyIsam。
2、配置檔案中的配置會被分為若干個組,每個組有一個組名。如:
[server]
(具體的啟動選項…)
[mysqld]
(具體的啟動選項…)[mysqld_safe]
(具體的啟動選項…)
[client]
(具體的啟動選項…)
[mysql]
(具體的啟動選項…)
[mysqladmin]
(具體的啟動選項…)
[server] 和[client]是兩個特殊的組,針對服務端的應用,[server]組下的配置都會起作用。針對客戶端的應用,[client]組下的配置都會起作用。
3、如果一個配置項既出現在配置檔案裡,又出現在命令列中,那麼以命令列中的啟動選項為準。
> 如何檢視和設定系統變數
首先系統變數有其作用範圍,主要有global(作用於全域性)與session(只作用於當前會話,對其他客戶端連線是不生效的)兩種。
如果我們想檢視當前使用的預設儲存引擎,可以使用:
show variables like '%default_storage_engine%';
如果你前面不加session還是global,預設檢視的系統變數是session級別的。
你可以通過:
set session default_storage_engine=innodb;
修改系統變數。
也可以通過:
show global variables like '%default_storage_engine%';
show session variables like '%default_storage_engine%';
檢視全域性和會話級的系統變數。
拓展
另外還有一些是狀態變數:
你可以通過
show global status like 'max%';
類似的方式檢視。
你可以看到服務端最多被使用的連線數是79,時間點在2020-12-17 16:55:01。