# NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
# STRICT_TRANS_TABLES模式:严格模式,对插入数据进行严格校验,当发现插入列值未满足列长度要求时,直接报告error,
保证了错误数据无法插入到数据库中。
# ANSI模式:宽松模式,对插入数据进行校验,当发现插入列值未满足列长度要求时,对数据类型调整或截断保存,同时报告warning
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp
# 允许mysqld打开的最大文件数
open-files-limit = 65535
# 允许mysqld接收的最大的数据包
max_allowed_packet = 16M
# 最大并发连接数量
max_connections = 500
# 某台主机尝试连接mysqld失败上万次后,mysql拒绝此主机的连接请求
max_connect_errors = 10000
# 内存临时表的空间上限
tmp_table_size = 256M
# 内存表的空间上限(memory存储引擎)
max_heap_table_size = 256M
# 开启慢查询
slow_query_log = 1
# 记录查询时间大于2s的查询
long_query_time = 2
# 关闭查询缓存,不会缓存sql语句与结果集
query_cache_type = 0
# 查询缓存都关闭了,就不为查询缓存分配内存区域了
query_cache_size = 0
# 为缓存myisam表的索引分配的内存区域
key_buffer_size = 32M
# 默认的存储引擎
default_storage_engine = innodb
# 默认的事务隔离级别
transaction-isolation = repeatable-read
# 数据文件的路径
innodb_data_home_dir = /usr/local/mysql/data
# 事务日志文件的路径
innodb_log_group_home_dir = /usr/local/mysql/data
# 为缓存innodb表与索引分配的内存区域
innodb_buffer_pool_size = 2G
# 将buffer_pool划分为2个子池独立管理
innodb_buffer_pool_instances = 2
# 事务日志文件的大小
innodb_log_file_size = 256M
# 日志组中包含3个事务日志文件
innodb_log_files_in_group = 3
# 为缓存事务日志分配的内存区域
innodb_log_buffer_size = 16M
# undo文件的路径
innodb_undo_directory = /usr/local/mysql/data
# undo表空间包含3个文件
innodb_undo_tablespaces = 3
# undo表空间划分为128个undo段
innodb_undo_logs= 128
# 数据文件的格式
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
# 共享表空间文件属性
innodb_data_file_path = ibdata1:1024M:autoextend
# 自适应刷新
innodb_adaptive_flushing = 1
# 自适应哈希索引
innodb_adaptive_hash_index = 1
# 延迟更新(insert,delete,purge)
innodb_change_buffering = all
# 延迟更新最多使用buffer pool 1/4的内存空间
innodb_change_buffer_max_size = 25
# 两次写
innodb_doublewrite = 1
# 刷新邻居页
innodb_flush_neighbors = 1
# 支持分布式事务
innodb_support_xa = 1
# 独立表空间
innodb_file_per_table = 1
# 0:事务提交时log thread不写入事务日志文件,由master thread每一秒将log buffer中的事务日志写入事务日志文件,并且调用
fsync,同步磁盘
# 1:事务提交时log thread将与事务相关的事务日志写入事务日志文件,并且调用fsync,同步磁盘
# 2:事务提交时log thread将与事务相关的事务日志写入事务日志文件,但仅写入文件系统的缓存中,由文件系统调用fsync,同步磁盘
innodb_flush_log_at_trx_commit = 1
# 读线程数量
innodb_read_io_threads = 4
# 写线程数量
innodb_write_io_threads = 4
# 一次可以刷新200个脏页
innodb_io_capacity = 200
# 独立的purge线程
innodb_purge_threads = 1
# 一次可以回收300个undo页
innodb_purge_batch_size = 300
# 若buffer pool中脏页比例超过75%,执行检查点操作,脏页被刷新回数据文件
innodb_max_dirty_pages_pct = 75%
# 在LRU列表靠近尾端3/8(37%)的位置为分界点,分界点左侧5/8的区域为new区域,分界点右侧3/8的区域为old区域
innodb_old_blocks_pct = 37
# 页首次访问被插入到LRU列表的分界点位置,在1s后再次被访问,由old区域移动到new区域,单位毫秒
innodb_old_blocks_time = 1000
# Innodb行锁等待的超时时间,单位为秒
innodb_lock_wait_timeout = 50
# 在Innodb行锁等待超时后,事务是否回滚
innodb_rollback_on_timeout = 0
# 交互式连接在8小时内一直无事可做(空闲连接),那么mysqld主动断开连接,单位秒
interactive_timeout = 28800
# 非交互式连接在8小时内一直无事可做(空闲连接),那么mysqld主动断开连接,单位秒
wait_timeout = 28800
# 查询information_schema.tables/statistics表时,是否自动更新统计信息
innodb_stats_on_metadata = 0
# InnoDB并发线程数
innodb_thread_concurrency = 0
# 使用系统异步I/O
innodb_use_native_aio = 1
# 使用系统内存分配程序,例如:tcmalloc或jemalloc
innodb_use_sys_malloc = 1