[MySQL]
prompt = [\\u@\\h][\\d]>\\_ #自定义登录提示信息
[mysqld]
#基本设置#
user = mysql #用户名
sql_mode =“STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER”
autocommit = 1 #事务自动提交设置
character_set_server = utf8mb4 #服务器字符设置
transaction_isolation = READ-COMMITTED #事务隔离级别
explicit_defaults_for_timestamp = 1 #一行数据中某些列被更新了,包含timestamp类型的列是否自动更新
max_allowed_packet = 16777216 #数据包大小
event_scheduler = 1 # 默认启用事件功能
#连接#
interactive_timeout = 1800 #服务器关闭交互式连接前等待活动的秒数
wait_timeout = 1800 #服务器关闭非交互连接之前等待活动的秒数。
lock_wait_timeout = 1800 #锁等待时间
skip_name_resolve = 1 #禁止域名解析
max_connections = 512 #最大连接(用户)数
max_connect_errors = 1000000 #如果mysql服务器连续接收到了来自于同一个主机的请求,且这些连续的请求全部都没有成功的建立连接就被断开了,当这些连续的请求的累计值大于该值,mysql服务器就会阻止这台主机后续的所有请求
#表缓存性能设置
table_open_cache = 4096 #表高速缓存大小
table_definition_cache = 4096 #缓存frm文件
table_open_cache_instances = 128 #表缓存实例数
#会话记忆设置#
read_buffer_size = 16M #读入缓冲区大小
read_rnd_buffer_size = 32M #随机读缓冲大小
sort_buffer_size = 32M #排序会话的缓存大小
tmp_table_size = 64M #heap(堆积)表缓冲大小
join_buffer_size = 128M #join缓冲大小
thread_cache_size = 64 #缓存空闲线程
#日志设置#
log_error = error.log #错误日志文件
slow_query_log = 1 #开启慢查询日志
slow_query_log_file = slow.log #慢查询日志文件
log_queries_not_using_indexes = 1 #记录没有使用索引的语句
log_slow_admin_statements = 1 #记录那些慢的optimize table,analyze table和alter table语句
log_slow_slave_statements = 1 #记录由Slave所产生的慢查询
log_throttle_queries_not_using_indexes = 10 #每分钟允许记录到slow log的且未使用索引的SQL语句次数
expire_logs_days = 90 ## 提供保留二进制日志的功能
long_query_time = 2 #SQL语句超过2s即为慢查询
min_examined_row_limit = 100 #要检查的行数大于等于100时才记录为慢查询
binlog-rows-query-log-events = 1 # 开启RBR模式下SQL记录
log-bin-trust-function-creators = 1 # 避免复制出现一些错误
log-slave-updates = 1 # 默认slave开启二进制日志
#innodb设置#
innodb_page_size = 16384 #页大小
innodb_buffer_pool_size = 160G #缓冲池
innodb_buffer_pool_instances = 16 #内存缓冲池实例数
innodb_buffer_pool_load_at_startup = 1 #在启动时把热数据加载到内存中
innodb_buffer_pool_dump_at_shutdown = 1 #在关闭时把热数据dump到本地磁盘
innodb_lru_scan_depth = 4096 #LRU列表中可用页的数量
innodb_lock_wait_timeout = 5 #事务等待资源获取的最长等待时间
innodb_io_capacity = 10000 #刷新脏页的数量
innodb_io_capacity_max = 20000 #刷新脏页的最大数量,防止用户进程陷入刷脏
innodb_flush_method = O_DIRECT #innodb数据文件及redo log的打开、刷写模式
innodb_file_format =Barracuda #innodb文件格式
innodb_file_format_max =Barracuda #
innodb_undo_logs = 128 #回滚段的个数
innodb_undo_tablespaces = 3 #单独存放的undo表空间个数,该参数我们推荐设置为大于等于3
innodb_flush_neighbors = 0 #刷新脏页时,检测该页所在区的所有页
innodb_log_file_size = 17179869184 #重做日志文件大小
innodb_log_files_in_group = 2 #日志组的数量
innodb_log_buffer_size = 16777216 #日志缓冲大小
innodb_purge_threads = 4 #purge线程数量
innodb_large_prefix = 1 #允许索引键的前缀超过767个字节的动态和压缩tables
innodb_thread_concurrency = 64 #并发线程数
innodb_print_all_deadlocks = 1 #把死锁信息打印到错误日志中
innodb_strict_mode = 1 #innodb严格检查模式
innodb_sort_buffer_size = 67108864 #排序缓冲大小
innodb_write_io_threads = 16 #脏页写的线程数
innodb_read_io_threads = 16 #读线程数
innodb_file_per_table = 1 #将innodb表从系统共享表空间移动到独立的.idb文件中
innodb_stats_persistent_sample_pages = 64 #控制采样page的个数
innodb_autoinc_lock_mode = 2 #自增锁的模式
innodb_online_alter_log_max_size = 1G #InnoDB表做在线DDL操作时所使用的临时日志文件的最大大小
innodb_open_files = 4096 #innodb能打开表的数据
#复制设置#
master_info_repository = TABLE #master.info信息保存在表中,默认是Myisam引擎
relay_log_info_repository = TABLE #relay.info信息保存在表中,默认是Myisam引擎
sync_binlog = 1 #怎样刷新二进制日志到磁盘
gtid_mode = on #开启gtid
enforce_gtid_consistency = 1 #保证gtid安全的参数
log_slave_updates #slave将复制事件写进自己的二进制日志
binlog_format = ROW #binglog格式
binlog_rows_query_log_events = 1 #把用户写直的原生态DML操作记录到binlog中
relay_log = relay.log #设置relay.log文件
relay_log_recovery = 1 #当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志
slave_skip_errors = ddl_exist_errors #定义复制过程中从服务器可以自动跳过的错误号
slave-rows-search-algorithms ='INDEX_SCAN,HASH_SCAN' #指示备库在 apply_binlog_event时使用的算法
#半同步复制设置#
plugin_load =“validate_password.so; rpl_semi_sync_master = semisync_master.so; rpl_semi_sync_slave = semisync_slave.so” #自动安装插件
rpl_semi_sync_master_enabled = 1 #master启用半同步复制
rpl_semi_sync_master_timeout = 3000 #master接受确认超时时间
rpl_semi_sync_slave_enabled = 1 #slave启用半同步复制
#密码插件#
validate_password_policy =strong #密码强度检查等级
validate-password= FORCE_PLUS_PERMANENT #永久长久使用该插件
[mysqld-5.6]
#metalock性能设置
metadata_locks_hash_instances = 64 #控制对mdl hash的分区数
[mysqld-5.7]
loose_innodb_numa_interleave = 1 #开启BP内存NUMA分配
innodb_buffer_pool_dump_pct = 40 #转储每个bp instance LRU上最热的page的百分比
innodb_page_cleaners = 16 #page cleaner线程数
innodb_undo_log_truncate = 1 #在线Truncate undo log 表空间
innodb_max_undo_log_size = 2G #控制最大undo tablespace文件的大小,超过则尝试truncate
innodb_purge_rseg_truncate_frequency = 128 #控制purge回滚段的频度
#新的复制设置#
slave-parallel-type = LOGICAL_CLOCK #基于库的并行复制方式
slave-parallel-workers = 16 #多线程并行复制
slave_preserve_commit_order = 1 #保障事务在slave上执行的顺序与relay log中的顺序严格一致
slave_transaction_retries = 128 #SQL线程在执行事务时发生InnoDB死锁且等待超时后,slave重试的次数
#其他更改设置#
binlog_gtid_simple_recovery = 1 #开启简化的GTID 恢复
log_timestamps =system #控制 error log、genera log等记录日志的显示时间。
prompt = [\\u@\\h][\\d]>\\_ #自定义登录提示信息
[mysqld]
#基本设置#
user = mysql #用户名
sql_mode =“STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER”
autocommit = 1 #事务自动提交设置
character_set_server = utf8mb4 #服务器字符设置
transaction_isolation = READ-COMMITTED #事务隔离级别
explicit_defaults_for_timestamp = 1 #一行数据中某些列被更新了,包含timestamp类型的列是否自动更新
max_allowed_packet = 16777216 #数据包大小
event_scheduler = 1 # 默认启用事件功能
#连接#
interactive_timeout = 1800 #服务器关闭交互式连接前等待活动的秒数
wait_timeout = 1800 #服务器关闭非交互连接之前等待活动的秒数。
lock_wait_timeout = 1800 #锁等待时间
skip_name_resolve = 1 #禁止域名解析
max_connections = 512 #最大连接(用户)数
max_connect_errors = 1000000 #如果mysql服务器连续接收到了来自于同一个主机的请求,且这些连续的请求全部都没有成功的建立连接就被断开了,当这些连续的请求的累计值大于该值,mysql服务器就会阻止这台主机后续的所有请求
#表缓存性能设置
table_open_cache = 4096 #表高速缓存大小
table_definition_cache = 4096 #缓存frm文件
table_open_cache_instances = 128 #表缓存实例数
#会话记忆设置#
read_buffer_size = 16M #读入缓冲区大小
read_rnd_buffer_size = 32M #随机读缓冲大小
sort_buffer_size = 32M #排序会话的缓存大小
tmp_table_size = 64M #heap(堆积)表缓冲大小
join_buffer_size = 128M #join缓冲大小
thread_cache_size = 64 #缓存空闲线程
#日志设置#
log_error = error.log #错误日志文件
slow_query_log = 1 #开启慢查询日志
slow_query_log_file = slow.log #慢查询日志文件
log_queries_not_using_indexes = 1 #记录没有使用索引的语句
log_slow_admin_statements = 1 #记录那些慢的optimize table,analyze table和alter table语句
log_slow_slave_statements = 1 #记录由Slave所产生的慢查询
log_throttle_queries_not_using_indexes = 10 #每分钟允许记录到slow log的且未使用索引的SQL语句次数
expire_logs_days = 90 ## 提供保留二进制日志的功能
long_query_time = 2 #SQL语句超过2s即为慢查询
min_examined_row_limit = 100 #要检查的行数大于等于100时才记录为慢查询
binlog-rows-query-log-events = 1 # 开启RBR模式下SQL记录
log-bin-trust-function-creators = 1 # 避免复制出现一些错误
log-slave-updates = 1 # 默认slave开启二进制日志
#innodb设置#
innodb_page_size = 16384 #页大小
innodb_buffer_pool_size = 160G #缓冲池
innodb_buffer_pool_instances = 16 #内存缓冲池实例数
innodb_buffer_pool_load_at_startup = 1 #在启动时把热数据加载到内存中
innodb_buffer_pool_dump_at_shutdown = 1 #在关闭时把热数据dump到本地磁盘
innodb_lru_scan_depth = 4096 #LRU列表中可用页的数量
innodb_lock_wait_timeout = 5 #事务等待资源获取的最长等待时间
innodb_io_capacity = 10000 #刷新脏页的数量
innodb_io_capacity_max = 20000 #刷新脏页的最大数量,防止用户进程陷入刷脏
innodb_flush_method = O_DIRECT #innodb数据文件及redo log的打开、刷写模式
innodb_file_format =Barracuda #innodb文件格式
innodb_file_format_max =Barracuda #
innodb_undo_logs = 128 #回滚段的个数
innodb_undo_tablespaces = 3 #单独存放的undo表空间个数,该参数我们推荐设置为大于等于3
innodb_flush_neighbors = 0 #刷新脏页时,检测该页所在区的所有页
innodb_log_file_size = 17179869184 #重做日志文件大小
innodb_log_files_in_group = 2 #日志组的数量
innodb_log_buffer_size = 16777216 #日志缓冲大小
innodb_purge_threads = 4 #purge线程数量
innodb_large_prefix = 1 #允许索引键的前缀超过767个字节的动态和压缩tables
innodb_thread_concurrency = 64 #并发线程数
innodb_print_all_deadlocks = 1 #把死锁信息打印到错误日志中
innodb_strict_mode = 1 #innodb严格检查模式
innodb_sort_buffer_size = 67108864 #排序缓冲大小
innodb_write_io_threads = 16 #脏页写的线程数
innodb_read_io_threads = 16 #读线程数
innodb_file_per_table = 1 #将innodb表从系统共享表空间移动到独立的.idb文件中
innodb_stats_persistent_sample_pages = 64 #控制采样page的个数
innodb_autoinc_lock_mode = 2 #自增锁的模式
innodb_online_alter_log_max_size = 1G #InnoDB表做在线DDL操作时所使用的临时日志文件的最大大小
innodb_open_files = 4096 #innodb能打开表的数据
#复制设置#
master_info_repository = TABLE #master.info信息保存在表中,默认是Myisam引擎
relay_log_info_repository = TABLE #relay.info信息保存在表中,默认是Myisam引擎
sync_binlog = 1 #怎样刷新二进制日志到磁盘
gtid_mode = on #开启gtid
enforce_gtid_consistency = 1 #保证gtid安全的参数
log_slave_updates #slave将复制事件写进自己的二进制日志
binlog_format = ROW #binglog格式
binlog_rows_query_log_events = 1 #把用户写直的原生态DML操作记录到binlog中
relay_log = relay.log #设置relay.log文件
relay_log_recovery = 1 #当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志
slave_skip_errors = ddl_exist_errors #定义复制过程中从服务器可以自动跳过的错误号
slave-rows-search-algorithms ='INDEX_SCAN,HASH_SCAN' #指示备库在 apply_binlog_event时使用的算法
#半同步复制设置#
plugin_load =“validate_password.so; rpl_semi_sync_master = semisync_master.so; rpl_semi_sync_slave = semisync_slave.so” #自动安装插件
rpl_semi_sync_master_enabled = 1 #master启用半同步复制
rpl_semi_sync_master_timeout = 3000 #master接受确认超时时间
rpl_semi_sync_slave_enabled = 1 #slave启用半同步复制
#密码插件#
validate_password_policy =strong #密码强度检查等级
validate-password= FORCE_PLUS_PERMANENT #永久长久使用该插件
[mysqld-5.6]
#metalock性能设置
metadata_locks_hash_instances = 64 #控制对mdl hash的分区数
[mysqld-5.7]
loose_innodb_numa_interleave = 1 #开启BP内存NUMA分配
innodb_buffer_pool_dump_pct = 40 #转储每个bp instance LRU上最热的page的百分比
innodb_page_cleaners = 16 #page cleaner线程数
innodb_undo_log_truncate = 1 #在线Truncate undo log 表空间
innodb_max_undo_log_size = 2G #控制最大undo tablespace文件的大小,超过则尝试truncate
innodb_purge_rseg_truncate_frequency = 128 #控制purge回滚段的频度
#新的复制设置#
slave-parallel-type = LOGICAL_CLOCK #基于库的并行复制方式
slave-parallel-workers = 16 #多线程并行复制
slave_preserve_commit_order = 1 #保障事务在slave上执行的顺序与relay log中的顺序严格一致
slave_transaction_retries = 128 #SQL线程在执行事务时发生InnoDB死锁且等待超时后,slave重试的次数
#其他更改设置#
binlog_gtid_simple_recovery = 1 #开启简化的GTID 恢复
log_timestamps =system #控制 error log、genera log等记录日志的显示时间。
show_compatibility_56 =on #兼容information_schema.global_status
译者介绍:家华,从事mysqlDBA的工作,记录自己对mysql的一些总结