[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等记录日志的显示时间。 
show_compatibility_56 =on #兼容information_schema.global_status


译者介绍:家华,从事mysqlDBA的工作,记录自己对mysql的一些总结