天天看點

mysql-mariadb實踐中用到的配置(不斷完善中)

#基本配置

port=3306

pid-file=/mnt/mysql/data/mysql.pid

socket=/tmp/mysql.sock

datadir=/data/mysql/data

skip-name-resolve                #跳過dns解析

character_set_server=utf8

default_storage_engine=InnoDB    #預設庫的存儲引擎

default_table_type=InnoDB        #預設表的存儲引擎

wait_timeout=60                  #sleep狀态逾時時間

max_connections=2000             #最大連接配接數

max_connect_errors=1000          #最大錯誤連接配接數

#日志相關的配置

log_error=/mnt/mysql/data/err.log

slow_query_log=ON

slow_query_log_file=/mnt/mysql/data/slow.log

long_query_time=1          #記錄超過1s的慢查詢

bin_log=mysql-bin          #開啟二進制日志格式

binlog_format=statement    #二進制日志記錄格式        

expire_logs_days=7         #設定二進制日志保留的時間

#主從場景從庫相關配置

log_slave_updates     #在從庫開啟二進制日志

relay-log=relay-bin

skip_slave_start      #重新開機mysql後,不自動啟動複制

relay-log-purge       #重放完中繼日志後将此中繼日志删除

read_only             #設定從庫為隻讀,除了root和sql複制線程

innodb_locks_unsafe_for_binlog=1 #禁止二進制日志的記錄

#優化相關的配置

max_allow_packet=1G

innodb_file_per_table=1           #為每張表使用一個表檔案,存儲格式為“表名.ibd”

innodb_data_file_path=ibdata1:10M;ibdata2:100M:autoextend    #單獨指定資料檔案的路徑與大小,并且自增長

innodb_data_home_dir=/data/mysql      #資料檔案的存放位置,此目錄必須存在

sync_binlog=0                     #由作業系統決定什麼時候重新整理緩存到持久化裝置

innodb_flush_method=O_DIRECT      #使用fsync()來重新整理檔案到作業系統,但會通知作業系統不緩存資料

innodb_buffer_pool_size=20G       #設定innodb緩沖池大小,建議為實體記憶體的80%左右

innodb_log_buffer_size=8M         #設定日志緩沖大小

innodb_log_file_size=100M         #設定事務日志檔案(日志檔案是作業系統記憶體)大小,此參數可有效提高性能

innodb_log_files_in_group=3       #設定事務日志個數,日志檔案總大小是每個檔案的大小之和

innodb_flush_log_at_trx_commit=2  #每秒重新整理一次日志檔案到持久化存儲,當系統斷電會丢失一秒的資料,但性能是最高的

innodb_thread_concurrency=8       #并發限制,限制一次性可以有多少線程進入核心,0表示不限制,thread_concurrency應設為CPU核數的2倍

innodb_thread_sleep_delay=10000   #當線程超過并發限制時,需要等待的時間,機關為微秒

innodb_fast_shutdown=0            #在關閉資料庫時的一種操作,是最慢的一種關閉方式,但在恢複時是最快的

innodb_max_dirty_pages_pct=10     #設定innodb緩沖池中可以保持的最大'髒頁'數,其值是一個百分比

query_cache_type=on               #開啟查詢緩存,除非證明有效,否則不建議開啟此參數

query_cache_size=10M              #查詢緩存,一次性配置設定并初始化這塊記憶體

sort_buffer_size=2M               #排序緩存,隻有在查詢需要做排序操作時才會為該緩存配置設定記憶體,一旦需要則配置設定全部記憶體

table_cache_size=10               #可以緩存的表個數

thread_cache_size=10              #線程池緩沖的線程個數,可以通過Threads_connected來個數進行設定

open_files_limit=65535            #設定可以打開檔案句柄個數,盡可能的要大

#不了解的相關參數

innodb_file_per_table=1和innodb_data_file_path之間的關系是什麼?

innodb_locks_unsafe_for_binlog=1:禁止二進制日志有什麼用?跟bin_log參數是否有沖突?

本文轉自激情燃燒的歲月部落格51CTO部落格,原文連結http://blog.51cto.com/liuzhengwei521/1881278如需轉載請自行聯系原作者

weilovepan520