在《MySQL安裝后的目錄結(jié)構(gòu)介紹》一節(jié)中,我們了解到 my.ini 是 MySQL 數(shù)據(jù)庫(kù)中使用的配置文件,MySQL 服務(wù)器啟動(dòng)時(shí)會(huì)讀取這個(gè)配置文件,我們可以通過(guò)修改這個(gè)文件,達(dá)到更新配置的目的。本節(jié)以 Windows 系統(tǒng)下的 my.ini 配置文件為樣板,講解 MySQL 配置文件中的參數(shù)。
一般情況下,my.ini 在 MySql 安裝的根目錄下,也有可能在隱藏文件夾“ProgramData”下面。
為了方便讀者閱讀,我們省略了 my.ini 文件中的注釋內(nèi)容。下面分開(kāi)介紹 my.ini 中參數(shù)的具體意義,文件內(nèi)容如下:
[client]
port=3306
[mysql]
default-character-set=gbk
上面顯示的是客戶端的參數(shù),[client] 和 [mysql] 都是客戶端,參數(shù)說(shuō)明如下:
-
port:表示 MySQL 客戶端連接服務(wù)器端時(shí)使用的端口號(hào),默認(rèn)的端口號(hào)為 3306。如果需要更改端口號(hào)的話,可以直接在這里修改。
-
default-character-set:表示 MySQL 客戶端默認(rèn)的字符集。
[mysqld]
port=3306
basedir=C:/Program Files/MySQL/MySQL Server 5.7/
datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data
character-set-server=gb2312
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=35M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=69M
key_buffer_size=55M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
以上是服務(wù)器的參數(shù),參數(shù)說(shuō)明如下表所示:
參數(shù)名稱 |
說(shuō)明 |
port |
表示 MySQL 服務(wù)器的端口號(hào) |
basedir |
表示 MySQL 的安裝路徑 |
datadir |
表示 MySQL 數(shù)據(jù)文件的存儲(chǔ)位置,也是數(shù)據(jù)表的存放位置 |
default-character-set |
表示服務(wù)器端默認(rèn)的字符集 |
default-storage-engine |
創(chuàng)建數(shù)據(jù)表時(shí),默認(rèn)使用的存儲(chǔ)引擎 |
sql-mode |
表示 SQL 模式的參數(shù),通過(guò)這個(gè)參數(shù)可以設(shè)置檢驗(yàn) SQL 語(yǔ)句的嚴(yán)格程度 |
max_connections |
表示允許同時(shí)訪問(wèn) MySQL 服務(wù)器的最大連接數(shù)。其中一個(gè)連接是保留的,留給管理員專用的 |
query_cache_size |
表示查詢時(shí)的緩存大小,緩存中可以存儲(chǔ)以前通過(guò) SELECT 語(yǔ)句查詢過(guò)的信息,再次查詢時(shí)就可以直接從緩存中拿出信息,可以改善查詢效率 |
table_open_cache |
表示所有進(jìn)程打開(kāi)表的總數(shù) |
tmp_table_size |
表示內(nèi)存中每個(gè)臨時(shí)表允許的最大大小 |
thread_cache_size |
表示緩存的最大線程數(shù) |
myisam_max_sort_file_size |
表示 MySQL 重建索引時(shí)所允許的最大臨時(shí)文件的大小 |
myisam_sort_buffer_size |
表示重建索引時(shí)的緩存大小 |
key_buffer_size |
表示關(guān)鍵詞的緩存大小 |
read_buffer_size |
表示 MyISAM 表全表掃描的緩存大小 |
read_rnd_buffer_size |
表示將排序好的數(shù)據(jù)存入該緩存中 |
sort_buffer_size |
表示用于排序的緩存大小 |
innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=107M
innodb_log_file_size=54M
innodb_thread_concurrency=18
以上是 InnoDB 存儲(chǔ)引擎使用的參數(shù),參數(shù)說(shuō)明如下:
-
innodb_additional_mem_pool_size:表示附加的內(nèi)存池,用來(lái)存儲(chǔ) InnoDB 表的內(nèi)容。
-
innodb_flush_log_at_trx_commit:是設(shè)置提交日志的時(shí)機(jī),若設(shè)置為 1,InnoDB 會(huì)在每次提交后將事務(wù)日志寫(xiě)到磁盤(pán)上。
-
innodb_log_buffer_size:表示用來(lái)存儲(chǔ)日志數(shù)據(jù)的緩存區(qū)的大小。
-
innodb_buffer_pool_size:表示緩存的大小,InnoDB 使用一個(gè)緩沖池類保存索引和原始數(shù)據(jù)。
-
innodb_log_file_size:表示日志文件的大小。
-
innodb_thread_concurrency:表示在 InnoDB 存儲(chǔ)引擎允許的線程最大數(shù)。
注意:每次修改 my.ini 文件中的參數(shù)后,必須重新啟動(dòng) MySQL 服務(wù)才會(huì)有效。
|