解析MySQL 配置檔案 my.cnf / my.ini 區別

roc_guo發表於2022-12-24

充分理解 MySQL 配置檔案中各個變數的意義對我們有針對性的最佳化 MySQL 資料庫效能有非常大的意義。我們需要根據不同的資料量級,不同的生產環境情況對 MySQL 配置檔案進行最佳化。


一、配置檔案my.ini或my.cnf的位置

Windows 和 Linux 下的 MySQL 配置檔案的名字和存放位置都是不同的:


1、WIndows 下 MySQL 配置檔案是 my.ini 存放在 MySQL 安裝目錄的根目錄下;


2、Linux 下 MySQL 配置檔案是 my.cnf 存放在 /etc/my.cnf、/etc/mysql/my.cnf。我們也可以透過 find 命令進行查詢。


1)find /etc -name my.cnf   --在/etc目錄下的檔案my.cnf

 2)find /etc -name '*cnf*'  --使用萬用字元*(0或者任意多個)。表示在/etc目錄下查詢檔名中含有字串‘cnf'的檔案

 3)find / -name my.cnf      --在根目錄下查詢檔案my.cnf,表示在整個硬碟查詢

 4)find . -name 'cnf*'      --表示當前目錄下查詢檔名開頭是字串‘cnf'的檔案

3、另外要注意的是,Linux用rpm包安裝的MySQL是不會安裝/etc/my.cnf檔案的。


至於為什麼沒有這個檔案而MySQL卻也能正常啟動和作用,有兩個說法:


第一種說法,my.cnf只是MySQL啟動時的一個引數檔案,可以沒有它,這時MySQL會用內建的預設引數啟動;


第二種說法,MySQL在啟動時自動使用/usr/share/mysql目錄下的my-medium.cnf檔案,這種說法僅限於rpm包安裝的MySQL。


解決方法:只需要複製一個/usr/share/mysql目錄下的.cnf檔案到/etc目錄,並改名為my.cnf即可。


二、配置檔案my.cnf的內容詳解

[mysqld]

# 指定Mysql資料庫的開放埠。

port = 3306

# 設定Mysql資料庫的安裝目錄(絕對路徑)。

basedir = /usr/local/mysql

# 設定Mysql資料庫的資料存放的絕對路徑(存放目錄)。必須是data,或者是\\xxx-data(my.ini需要,my.cnf不需要)。

datadir = /www/server/data

# 設定MySQL資料庫的最大連線數量。如果伺服器的併發連線請求量比較大,建議調高此值,以增加並行連線數量。可以過'%connect%'萬用字元檢視當前狀態的連線數量,以定奪該值的大小。

max_connections = 100

# 設定MySQL資料庫的連線超時時間。預設設定是一個資料庫連線超過8小時沒有使用,達到了server端的timeout,伺服器將斷開這條連線,此後再透過這個connection發起查詢操作都將失敗。超時等待時間,單位秒,即一個connection在若干秒內無響應,則伺服器切斷與這個客戶端的連線。

wait_timeout = 28800

# 當沒有資料庫請求時,28800秒(即8小時)將自動斷開連線。要同時設定interactive_timeout和wait_timeout才會生效。

interactive_timeout = 28800

?


三、配置檔案my.cnf的內容查詢

# 檢視併發數

mysql> show status like 'Threads%';

# 檢視mysql伺服器的最大連線數值

mysql> show variables like '%max_connections%';

# 檢視mysql伺服器響應的最大連線數:

mysql> show global status like 'Max_used_connections';

四、配置檔案my.cnf的內容修改

# 設定mysql伺服器的最大連線數值

mysql> set GLOBAL max_connections=256;

到此這篇關於MySQL 配置檔案 my.cnf / my.ini 區別的文章就介紹到這了


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

相關文章