# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
user = mysql
port = 33306
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
character_set_server = UTF8MB4
default_time_zone = "+8:00"
#端口绑定的ip地址,0.0.0.0表示允许所有远程访问,127.0.0.1表示只能本机访问,默认值为*
bind-address = 0.0.0.0
server_id = 123
# 尚未处理的连接数量, 默认50
back_log = 25
# 最大连接数, 1G内存无法处理200条连接
max_connections = 100
# 阻止过多尝试失败的客户端,如果值为10时,失败(如密码错误)10次,mysql会无条件阻止用户连接
max_connect_errors = 100
#########################################
#################其他设置################
#########################################
# 启用了显式默认值的 TIMESTAMP 列(自己给TIMESTAMP列赋值, 不再自动赋值当前时间)
explicit_defaults_for_timestamp = 1
# 表名 1表示不区分大小写, 0表示区分大小写, 默认0
# win10 Docker 下会报错
#lower_case_table_names = 0
########################################################
############各种缓冲区及处理数据的最大值设置############
########################################################
# ORDER BY排序使用的缓冲大小, 默认256K
sort_buffer_size = 128K
# Join使用的缓冲大小, 默认256K
join_buffer_size = 128K
# 索引块的缓冲区大, 默认8M
key_buffer_size = 4M
# 控制客户端和服务器之间传输的单个数据包的最大大小, 默认4M
max_allowed_packet = 2M
# 表描述符缓存大小,可减少文件打开/关闭次数,一般max_connections*2。
table_open_cache = 200
# 表缓存数量, 最大64
# MySQL 缓存 table 句柄的分区的个数,每个cache_instance<=table_open_cache/table_open_cache_instances
table_open_cache_instances = 8
# MySQL打开最大文件数,默认最小1024;
open_files_limit = 65535
# 查询缓冲区的大小, 在高并发,写入量大的系统,建议把该功能禁掉
query_cache_size = 0
# 是否缓存查询结果, 默认 OFF
query_cache_type = OFF
# 指定单个查询能够使用的缓冲区大小,默认为1M
query_cache_limit = 512K
##############################################
#################线程相关配置#################
##############################################
# 线程缓存;主要用来存放每一个线程自身的标识信息,线程栈大小, 默认256K
thread_stack = 64K
# thread_cahe_size线程池,线程缓存。用来缓存空闲的线程,以至于不被销毁,
# 如果线程缓存在的空闲线程,需要重新建立新连接,则会优先调用线程池中的缓存,很快就能响应连接请求。
# 每建立一个连接,都需要一个线程与之匹配。默认 9
thread_cache_size = 10
# 最大的空闲等待时间,默认是28800,单位秒,即8个小时
# 通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接
# 交互式连接超时时间,超过这个时间自动断开连接
interactive_timeout = 600
# 非交互式连接超时时间,超过这个时间自动断开连接
wait_timeout = 10
# 它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)
# 如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下
# 默认16M
tmp_table_size = 8M
# 默认16M
max_heap_table_size = 8M
############################
##########日志设置##########
############################
# 日志错误路径
log_error = /var/lib/mysql/error.log
# binlog
log_bin = mybinlog
binlog_format = ROW
max_binlog_size = 64M
# 保存的binlog日志的天数, 默认0 不过期
expire_logs_days = 30
# bin日志 一个事务还未提交时的最大缓存占用, 一个线程开始一个事务的时候就会分配一个, 不宜太大, 默认32K
binlog_cache_size = 8K
# binlog能够使用的最大cache内存大小
max_binlog_cache_size = 32M
# 慢查询,开发调式阶段才需要开启慢日志功能。上线后关闭
#slow_query_log = ON
# 慢日志文件路径
#slow_query_log_file = /var/lib/mysql/slow.log
# 会记录所有没有利用索引来进行查询的语句 前提是 slow_query_log 的值也是ON
#log_queries_not_using_indexes = ON
# 如果运行的SQL语句没有使用索引,
# 则mysql数据库同样会将这条SQL语句记录到慢查询日志文件中。调试时候使用
#log-queries-not-using-indexes
# 设定每分钟记录到日志的未使用索引的语句数目,超过这个数目后只记录语句数量和花费的总时间
#log_throttle_queries_not_using_indexes = 60
# MySQL能够记录执行时间超过参数 long_query_time 设置值的SQL语句
# 默认是10。超过这个时间的sql语句会被记录到慢日志文件中
#long_query_time = 2
############################
######innoDB setting########
############################
# 使每个Innodb的表,有自已独立的表空间
innodb_file_per_table = 1
# 限制Innodb能打开的表的数量, 默认2000
innodb_open_files = 65536
# 表定义缓存(数据字典)数量400-2000,默认为1400
table_definition_cache = 600
# InnoDB 用来高速缓冲数据和索引内存缓冲大小。更大的设置可以使访问数据时减少磁盘 I/O。默认 128M, 最小5M
innodb_buffer_pool_size = 32M
# InnoDB 将日志写入日志磁盘文件前的缓冲大小, 默认16M
# 如果有大的事务处理,设置大的日志缓冲可以减少磁盘I/O。
innodb_log_buffer_size = 4M
# 日志组中的每个日志文件的大小(单位 MB)。如果 n 是日志组中日志文件的数目
# 那么理想的数值为 1M 至下面设置的缓冲池(buffer pool)大小的 1/n。较大的值,
# 可以减少刷新缓冲池的次数,从而减少磁盘 I/O。但是大的日志文件意味着在崩溃时需要更长的时间来恢复数据。
# 默认 48M
innodb_log_file_size = 16M
# 指定有2个日志组, 默认 2
innodb_log_files_in_group = 2
# 控制脏页的数量上限, 默认 75
# 太大,缓存中每次更新需要致换数据页太多,太小,放的数据页太小,更新操作太慢。
innodb_max_dirty_pages_pct = 75
# 死锁等待时间, 默认 50
innodb_lock_wait_timeout = 10
# 数据库事务隔离级别
transaction_isolation = REPEATABLE-READ
# InnoDB 用来刷新日志的方法
innodb_flush_method = O_DIRECT
# 提高索引统计信息精确度, 默认20
innodb_stats_persistent_sample_pages = 20
############################
######myisam setting########
############################
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
[mysqldump]
quick