MySQL 5.6 my.cnf 模版


[client] port
= 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] thp-setting=never socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp local-infile = 0 lc-messages-dir = /usr/share/mysql skip-external-locking skip-name-resolve #bind-address = 127.0.0.1 #对timestamp新的行为控制参数,相关文章 explicit_defaults_for_timestamp = 1 character-set-server = utf8mb4 default-storage-engine=INNODB ##thread相关参数:Thread_pool_size X Thread_pool_oversubscribe = MySQL内部同时支持运行的最大任务数,相关文章 #MySQL线程调度方式, thread_handling = pool-of-threads #根据系统的CPU创建出thread_pool_size(该参数不建议调整)threadpool中group数量,默认为cpu核心数,server启动时自动计算 #thread_pool_size = auto #每个thread_pool_size里同时可以运行多少个任务,超过限制后,继续创建worker线程会被延迟 thread_pool_oversubscribe = 20 #timer线程检测间隔,单位为毫秒,用于防止thread pool里的线程死掉.Thread pool里线程如果超过thread_pool_stall_limit声明的时间没响应降会重新创建 thread_pool_stall_limit = 50 #用于声明extra_port最大允许的连接,extra_port 去监听一个和服务端口不一样的端口,用于Thread pool被占满或是被锁着的情况下用于管理使用. extra_max_connection = 5 #线程池的优先级:transactions:使用优先队列和普通队列,对于事务已经开启的statement,放到优先队列中,否则放到普通队列中。statements:只使用优先队列 ;none: 只是用普通队列,本质上和statements相同,都是只是用一个队列 thread_pool_high_prio_mode = transactions #当开启了优先队列模式后,每个连接最多允许thread_pool_high_prio_tickets次被放到优先队列中,之后放到普通队列中 thread_pool_high_prio_tickets=4294967295 #线程最大空闲时间,单位为秒,超过限制后会退出,默认60 thread_pool_idle_timeout=60 #threadpool中最大线程数目,线程总数超过该限制后不能继续创建更多线程 thread_pool_max_threads = 100000 #FullText #MyISAM ft_min_word_len = 1 ft_max_word_len = 84 #InnoDB innodb_ft_min_token_size= 1 innodb_ft_max_token_size=84 #MyISAM 停止词存放在文件 ft_stopword_file = /var/lib/mysql/stopword.txt #InnoDB,停止词存放在表 innodb_ft_server_stopword_table = dba_test/ft_stopwords innodb_ft_user_stopword_table = dba_test/ft_stopwords #控制在创建临时表时使用的存储引擎,默认为innodb default_tmp_storage_engine = innodb #线上可以开启 innodb_undo_directory = /var/lib/mysql/undolog/ innodb_undo_tablespaces = 8 innodb_undo_logs = 128 #用于优化in(),以确认是否直接使用索引统计,相关文章 eq_range_index_dive_limit = 200 #back_log = 500 thread_stack = 192K max_allowed_packet = 32M max_connections = 600 max_connect_errors = 2000 max_heap_table_size = 256M max_length_for_sort_data= 2048 tmp_table_size = 256M read_buffer_size = 512K read_rnd_buffer_size = 1M sort_buffer_size = 512K join_buffer_size = 256K table_open_cache = 1024 #对table cache进行划分,减少table cache的锁竞争,累死innodb_buffer_poll_instances table_open_cache_instances = 8 thread_cache_size = 64 # * Query Cache Configuration #query_cache_type = 0 #query_cache_size = 0M #query_cache_limit = 1M open_files_limit = 5000 # * Logging and Replication log_error = /var/log/mysql/error_3306.log #开启慢查询日志,相关文章1文章2 slow_query_log = 1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 0.5 #log-queries-not-using-indexes #general_log = 1 #慢查询过滤器,用于Percona,相关文章 #log_slow_filter = 'string' #可用值session or query log_slow_rate_type = session #记录每个session/query的日志,如果log_slow_rate_type为session,将不记录replication thread的日志 log_slow_rate_limit = 1 #语句执行存储过程(不包括触发器)慢将记录到慢查询日志 log_slow_sp_statements = 1 #指定慢查询日志包含多少信息,相关文章 #log_slow_verbosity = '' #每个慢查询记录时间戳 #slow_query_log_timestamp_always #精度为second或microsecond slow_query_log_timestamp_precision=second #该变量控制最大slow文件数量,设置slow_query_log_file为没有.log后缀的文件 #max_slowlog_files #超过该值,slow日志将自动旋转,生成slow_query_log_file.000001这样的文件 #max_slowlog_size log_bin = mysql-bin-3306.log binlog_cache_size = 1M max_binlog_size = 1024M binlog_format = MIXED #binlog_format = ROW #binlog_row_image = minimal
#binlog_rows_query_log_events = 1 sync_binlog
= 1000 expire_logs_days = 5
#binlog_checksum         = NONE
#事务提交顺序和binlog记录顺序是相同的,默认打开
binlog_order_commits    =1
server-id               = 10

relay_log                = mysqld-relay-bin

# * TokuDB
tokudb_cache_size       = 512M
tokudb_commit_sync      = 0
tokudb_fsync_log_period = 1000
tokudb_data_dir         = /var/lib/mysql/tokudb_data
tokudb_log_dir          = /var/lib/mysql/tokudb_log
tokudb_tmp_dir          = /tmp

# * MyISAM
key_buffer_size         = 128M
bulk_insert_buffer_size = 8M
concurrent_insert       = 2
#myisam-recover          = BACKUP
myisam_recover_options  = BACKUP

# * InnoDB
#打印死锁到errorlog
innodb_print_all_deadlocks = 1

  #预读,对于随机读写,推荐关闭
  innodb_read_ahead_threshold = 0

#预热
innodb_buffer_pool_dump_now      = 1
innodb_buffer_pool_load_now      = 1

innodb_buffer_pool_dump_at_shutdown  = 1
innodb_buffer_pool_load_at_startup   = 1
#预热文件
innodb_buffer_pool_filename     = ib_buffer_pool

  #事务日志记录的大小,默认512,ssd可以设置4096
  innodb_log_block_size = 4096

innodb_page_size                = 16K
#innodb_page_size                = 4K  #ssd
#innodb_flush_neighbors          = 0
#ssd
innodb_flush_neighbors          = 0
#影响page cleaner 线程一次扫描LRU/UNZIP_LRU的深度,默认为1024,IO能力强的可以适当调大。 innodb_io_capacity/innodb_buffer_pool_instances
innodb_lru_scan_depth           =2000

innodb_strict_mode              = 1
innodb_buffer_pool_size         = 10000M
innodb_buffer_pool_instances    = 3
innodb_change_buffering         = all
innodb_change_buffer_max_size   = 20
innodb_autoextend_increment     = 64
innodb_additional_mem_pool_size = 15M#5.7中移除,innodb_use_sys_malloc 配置为 ON 时,innodb_additional_mem_pool_size 失效(直接从操作系统分配内存)
innodb_file_per_table           = 1
innodb_flush_log_at_trx_commit  = 2
#自定义刷新日志时间,每隔这么多秒刷一次日志,只有在innodb_flush_log_at_trx_commit=2时才生效
innodb_flush_log_at_timeout
= 3 innodb_log_buffer_size = 8M innodb_log_file_size = 256M innodb_log_files_in_group = 2 innodb_max_dirty_pages_pct = 60 innodb_read_io_threads = 8 innodb_write_io_threads = 8 #innodb_io_capacity = 800 innodb_io_capacity = 2000 #ssd #innodb_io_capacity_max = 2000 innodb_adaptive_flushing = 1 innodb_adaptive_flushing_lwm = 15 innodb_old_blocks_pct = 20 innodb_old_blocks_time = 1000 #online ddl时并发DML产生的row log最大size,超过这个限制会导致DDL回滚 innodb_online_alter_log_max_size = 128M innodb_flush_neighbors = 1 innodb_concurrency_tickets = 5000 innodb_optimize_fulltext_only = 0 innodb_use_native_aio = 1 innodb_use_sys_malloc = 1#innodb_use_sys_malloc 配置为 ON 时,innodb_additional_mem_pool_size 失效(直接从操作系统分配内存)。5.7中移除 innodb_thread_concurrency = 0#回收undo线程 innodb_purge_threads= 4 #5.7 #innodb_page_cleaners = 4
#每次回收undo页的数量 innodb_purge_batch_size = 300 #创建索引做merge-sort时,一个归并block的大小 innodb_sort_buffer_size = 16M innodb_change_buffering = all #changebuffer占用bp的最大比例 innodb_change_buffer_max_size = 20 innodb_file_format = barracuda innodb_file_format_check = 1 innodb_file_format_max = barracuda innodb_stats_on_metadata = 0 innodb_open_files = 3000 #Percona支持ALL_O_DIRECT innodb_flush_method = ALL_O_DIRECT #innodb_flush_method = O_DIRECT_NO_FSYNC lock_wait_timeout = 50 transaction-isolation = READ-COMMITTED # * replication replicate-ignore-db = test replicate-ignore-db = mysql #binlog_do_db = include_database_name skip-slave-start = 1 log_slave_updates = 1 #gtid-mode=on # GTID only #enforce-gtid-consistency=true # GTID only master_info_repository = table relay_log_info_repository = table # * slave #并行复制线程数 slave_parallel_workers = 4 #多线程复制需要关闭 slave_transaction_retries = 0 #在并发复制时总共执行这么多次事务后做一次checkpoint,更新show slave status的数据 slave_checkpoint_group = 512 #在复制执行这么长时间后做一次checkpoint slave_checkpoint_period = 300 #在多线程复制时,在队列中Pending的事件所占用的最大内存,默认为16M,如果内存富余,或者延迟较大时,可以适当调大;注意这个值要比主库的max_allowed_packet大 slave_pending_jobs_size_max = 32M #备库SQL线程是否检查binlog的checksum slave_sql_verify_checksum = 1 #部分解决无主键表导致的复制延迟问题,相关文章 #slave_rows_search_algorithms = TABLE_SCAN,INDEX_SCAN,HASH_SCAN #slave_net_timeout = 300 relay_log_recovery = 1 #sync_relay_log = 0 #sync_relay_log_info = 0 #sync_master_info = 0 # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] #no-auto-rehash # faster start of mysql but no tab completition [isamchk] key_buffer = 16M # # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. #
!includedir /etc/mysql/conf.d/

该文章后续会不断更新,慢慢完善。之前也介绍了MySQL5.5的配置文件,现在按照前2篇文章1文章2的信息,整理出该博文。对MySQL5.6的my.cnf 进行了配置(Percona MySQL),因为根据服务器硬件资源来调整的,所以一些内存、io刷写的大小比例可以根据自己的条件来设置。

相关文章:

http://mysqllover.com/?p=575

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html

https://www.percona.com/doc/percona-server/5.6/ps-versions-comparison.html

https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html

 

原文地址:https://www.cnblogs.com/zhoujinyi/p/5227462.html