天天看點

MySQL資料庫my.cnf配置檔案注釋詳

我們知道,在mysql資料庫安裝完成後,要對my.cnf配置檔案進行适當的修改才能充分利用mysql資料庫的功能。但是對于初學者來說,修改my.cnf配置檔案似乎是一個比較難的過程。為了解決這個問題,本文我們對配置檔案進行了解釋,以友善大家學習參考,希望能夠對您有所幫助。

以下是my.cnf配置檔案參數解釋:

[client]  

port = 3309 

socket = /home/mysql/mysql/tmp/mysql.sock  

[mysqld]  

!include /home/mysql/mysql/etc/mysqld.cnf #包含的配置檔案 ,把使用者名,密碼檔案單獨存放  

pid-file = /longxibendi/mysql/mysql/var/mysql.pid  

basedir = /home/mysql/mysql/  

datadir = /longxibendi/mysql/mysql/var/  

# tmp dir settings  

tmpdir = /home/mysql/mysql/tmp/  

slave-load-tmpdir = /home/mysql/mysql/tmp/  

#當slave 執行 load data infile 時用  

#language = /home/mysql/mysql/share/mysql/english/  

character-sets-dir = /home/mysql/mysql/share/mysql/charsets/  

# skip options  

skip-name-resolve #grant 時,必須使用ip不能使用主機名  

skip-symbolic-links #不能使用連接配接檔案  

skip-external-locking #不使用系統鎖定,要使用myisamchk,必須關閉伺服器  

skip-slave-start #啟動mysql,不啟動複制  

#sysdate-is-now  

# res settings  

back_log = 50 #接受隊列,對于沒建立tcp連接配接的請求隊列放入緩存中,隊列大小為back_log,受限制與os參數  

max_connections = 1000 #最大并發連接配接數 ,增大該值需要相應增加允許打開的檔案描述符數  

max_connect_errors = 10000 #如果某個使用者發起的連接配接error超過該數值,則該使用者的下次連接配接将被阻塞,直到管理者執行flush hosts ; 指令;防止黑客  

#open_files_limit = 10240 

connect-timeout = 10 #連接配接逾時之前的最大秒數,在linux平台上,該逾時也用作等待伺服器首次回應的時間  

wait-timeout = 28800 #等待關閉連接配接的時間  

interactive-timeout = 28800 #關閉連接配接之前,允許interactive_timeout(取代了wait_timeout)秒的不活動時間。用戶端的會話wait_timeout變量被設為會話interactive_timeout變量的值。  

slave-net-timeout = 600 #從伺服器也能夠處理網絡連接配接中斷。但是,隻有從伺服器超過slave_net_timeout秒沒有從主伺服器收到資料才通知網絡中斷  

net_read_timeout = 30 #從伺服器讀取資訊的逾時  

net_write_timeout = 60 #從伺服器寫入資訊的逾時  

net_retry_count = 10 #如果某個通信端口的讀操作中斷了,在放棄前重試多次  

net_buffer_length = 16384 #包消息緩沖區初始化為net_buffer_length位元組,但需要時可以增長到max_allowed_packet位元組  

max_allowed_packet = 64m #  

#table_cache = 512 #所有線程打開的表的數目。增大該值可以增加mysqld需要的檔案描述符的數量  

thread_stack = 192k #每個線程的堆棧大小  

thread_cache_size = 20 #線程緩存  

thread_concurrency = 8 #同時運作的線程的資料 此處最好為cpu個數兩倍。本機配置為cpu的個數  

# qcache settings  

query_cache_size = 256m #查詢緩存大小  

query_cache_limit = 2m #不緩存查詢大于該值的結果  

query_cache_min_res_unit = 2k #查詢緩存配置設定的最小塊大小  

# default settings  

# time zone  

default-time-zone = system #伺服器時區  

character-set-server = utf8 #server級别字元集  

default-storage-engine = innodb #預設存儲  

# tmp & heap  

tmp_table_size = 512m #臨時表大小,如果超過該值,則結果放到磁盤中  

max_heap_table_size = 512m #該變量設定memory (heap)表可以增長到的最大空間大小  

log-bin = mysql-bin #這些路徑相對于datadir  

log-bin-index = mysql-bin.index  

relayrelay-log = relay-log  

relayrelay_log_index = relay-log.index  

# warning & error log  

log-warnings = 1 

log-error = /home/mysql/mysql/log/mysql.err  

log_output = file #參數log_output指定了慢查詢輸出的格式,預設為file,你可以将它設為table,然後就可以查詢mysql架構下的slow_log表了  

# slow query log  

slow_query_log = 1 

long-query-time = 1 #慢查詢時間 超過1秒則為慢查詢  

slow_query_log_file = /home/mysql/mysql/log/slow.log  

#log-queries-not-using-indexes  

#log-slow-slave-statements  

general_log = 1 

general_log_file = /home/mysql/mysql/log/mysql.log  

max_binlog_size = 1g 

max_relay_log_size = 1g 

# if use auto-ex, set to 0  

relay-log-purge = 1 #當不用中繼日志時,删除他們。這個操作有sql線程完成  

# max binlog keeps days  

expire_logs_days = 30 #超過30天的binlog删除  

binlog_cache_size = 1m #session級别  

# replication  

replicate-wild-ignore-table = mysql.% #複制時忽略資料庫及表  

replicate-wild-ignore-table = test.% #複制時忽略資料庫及表  

# slave_skip_errors=all 

key_buffer_size = 256m #myisam索引buffer,隻有key沒有data  

sort_buffer_size = 2m #排序buffer大小;線程級别  

read_buffer_size = 2m #以全表掃描(sequential scan)方式掃描資料的buffer大小 ;線程級别  

join_buffer_size = 8m # join buffer 大小;線程級别  

read_rnd_buffer_size = 8m #myisam以索引掃描(random scan)方式掃描資料的buffer大小 ;線程級别  

bulk_insert_buffer_size = 64m #myisam 用在塊插入優化中的樹緩沖區的大小。注釋:這是一個per thread的限制  

myisam_sort_buffer_size = 64m #myisam 設定恢複表之時使用的緩沖區的尺寸,當在repair table或用create index建立索引或alter table過程中排序 myisam索引配置設定的緩沖區  

myisam_max_sort_file_size = 10g #myisam 如果臨時檔案會變得超過索引,不要使用快速排序索引方法來建立一個索引。注釋:這個參數以位元組的形式給出.重建myisam索引(在repair table、alter table或load data infile過程中)時,允許mysql使用的臨時檔案的最大空間大小。如果檔案的大小超過該值,則使用鍵值緩存建立索引,要慢得多。該值的機關為位元組  

myisam_repair_threads = 1 #如果該值大于1,在repair by sorting過程中并行建立myisam表索引(每個索引在自己的線程内)  

myisam_recover = 64k#允許的group_concat()函數結果的最大長度  

transaction_isolation = repeatable-read  

innodb_file_per_table  

#innodb_status_file = 1 

#innodb_open_files = 2048 

innodb_additional_mem_pool_size = 100m #幀緩存的控制對象需要從此處申請緩存,是以該值與innodb_buffer_pool對應  

innodb_buffer_pool_size = 2g #包括資料頁、索引頁、插入緩存、鎖資訊、自适應哈希是以、資料字典資訊  

innodb_data_home_dir = /longxibendi/mysql/mysql/var/  

#innodb_data_file_path = ibdata1:1g:autoextend  

innodb_data_file_path = ibdata1:500m;ibdata2:2210m:autoextend #表空間  

innodb_file_io_threads = 4 #io線程數  

innodb_thread_concurrency = 16 #innodb試着在innodb内保持作業系統線程的數量少于或等于這個參數給出的限制  

innodb_flush_log_at_trx_commit = 1 #每次commit 日志緩存中的資料刷到磁盤中  

innodb_log_buffer_size = 8m #事物日志緩存  

innodb_log_file_size = 500m #事物日志大小  

#innodb_log_file_size =100m 

innodb_log_files_in_group = 2 #兩組事物日志  

innodb_log_group_home_dir = /longxibendi/mysql/mysql/var/#日志組  

innodb_max_dirty_pages_pct = 90 #innodb主線程重新整理緩存池中的資料,使髒資料比例小于90%  

innodb_lock_wait_timeout = 50 #innodb事務在被復原之前可以等待一個鎖定的逾時秒數。innodb在它自己的 鎖定表中自動檢測事務死鎖并且復原事務。innodb用lock tables語句注意到鎖定設定。預設值是50秒  

#innodb_flush_method = o_dsync 

[mysqldump]  

quick  

max_allowed_packet = 64m 

[mysql]  

disable-auto-rehash #允許通過tab鍵提示  

default-character-set = utf8 

connect-timeout = 3 

參考:

http://database.51cto.com/art/201108/285365.htm