我們知道,在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