[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8mb4
[mysql]
prompt = \\u@\\d \\r:\\m:\\s> #http://f.dataguru.cn/thread-321203-1-1.html 个性化mysql命令行提示符
#prompt = (\\u@\\h) [\\r:\\m:\\s] \\d
#no-auto-rehash #关闭自动补全
auto-rehash #开启自动补全
#safe-updates
default-character-set=utf8mb4
[mysqld]
user = mysql
port = 3306
lower_case_table_names = 1 #大小写敏感参数
basedir = /software/mysql #mysql安装目录
datadir = /software/mysql/data #mysql数据存放目录
datadir = /software/mysql/data
pid-file = /software/mysql/data/mysql.pid
socket =/tmp/mysql.sock #socket文件是linux/unix系统特有的,用户在该环境下的客户端连接可以不通过tcp/ip网络,而直接使用socket文件连接
character-set-server = utf8mb4
skip_name_resolve = 1
open_files_limit = 65535 #65535 打开文件的最大个数,如果出现too mantopen files之类的就需要调整该值了
back_log = 1024 #https://www.cnblogs.com/mydriverc/p/8296814.html #该值为设定档mysql暂时停止响应新的请求前,短时间内有多少个请求可以存在堆栈内,如果系统在短时间内有很多的连接,应该增大该值,该值最好设置小于512的整数skip-networking
max_connections = 512 #单用户最大的连接数,max_user_connections < 实例 max_user_connections < max_connections
max_connect_errors = 1000000 #默认为10,设置每个主机的连接请求异常中断的最大次数,超过后会blocked,连接成功后初始0,出现错误后需要flush hosts|每个主机连接允许异常中断的次数,当超过该次数mysql服务器将禁止该主机的连接请求,直到mysql服务重启,或者flushhosts命令清空host的相关信息
table_open_cache= 1024 #1536 设置高速缓存表的数目
table_definition_cache = 1024
table_open_cache_instances = 64
thread_stack = 512K #512K 设置Mysql每个线程的堆栈大小,默认值足够大,可满足普通操作
external-locking = FAISE #避免外部锁定(减少出错几率,增加稳定性)
max_allowed_packet = 32M #500M 设定在网络传输中一次可以传输消息的最大值,系统默认为1M,最大可以是1G
sort_buffer_size = 4M #8 设置查询排序时所能使用的缓冲区大小,系统默认大小为2MB,排序缓冲区用来处理类似orderby以及groupby队列所引起的排序,系统默认大小为2M,该参数对应分配内存是每个连接独占的,若有100个连接,实际分配的排序缓冲区大小为6*100;推荐设置为6M-8M
join_buffer_size = 4M #8 联合查询操作所能使用的缓冲区大小
thread_cache_size = 768 #8 服务器线程缓存数,与内存大小有关(建议大于3G设置为64)设置threadcache池中可以缓存连接线程的最大数量,默认为0,该值表示可以重新利用保存在缓存中线程的数量,当断开连接时若缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,若果缓存中是空的或者是新的请求,那么线程将被重新创建。设置规律为:1G内存设置为8,2G内存设置为16,4G以上设置为64
query_cache_size = 0 #128M 指定MySQL查询缓冲区的大小,用来缓冲select的结果,并在下一次同样查询的时候不再执行查询而直接返回结果,根据Qcache_lowmem_prunes的大小,来查看当前的负载是否足够高
query_cache_type = 0
interactive_timeout = 600 # 28800 连接保持活动的时间
wait_timeout = 600 # 28800 指定一个请求的最大连接时间
tmp_table_size = 32M #16M 设置内存临时表最大值,内存临时表的大小,如果超过该值,会将临时表写入磁盘
max_heap_table_size = 32M #8M 独立的内存表所允许的最大容量
slow_query_log = 1 #开启慢查询
slow_query_log_file = /software/mysql/log/slow.log #指定慢查询日志文件路径
log-error = /software/mysql/log/mysql-err.log
long_query_time = 0.5 #指定多少秒未返回结果的查询属于慢查询
server-id = 3306100 #http://www.cnblogs.com/wajika/p/6710458.html
log-bin = /software/mysql/log/mysql-binlog #binlog日志存放目录
sync-binlog = 1 #每隔N秒将缓存中的二进制日志记录写回硬盘
binlog_cache_size = 4M #1 设置二进制日志缓存大小
max_binlog_cache_size = 1G #最大的二进制Cache日志缓冲尺寸
max_binlog_size = 1G #单个二进制日志文件的最大值,默认1G,最大1G
expire_1ogs_days = 7
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates #级联也使用
binlog_format = row #二进制日志格式(mixed、row、statement)
relay_log_recovery = 1
relay-log-purge = 1
key_buffer_size = 32M #8M 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能,内存为4G时刻设置为256M或384M
read_buffer_size = 8M #2M 读查询操作所能使用的缓冲区大小,表全表扫描的缓冲大小
read_rnd_buffer_size = 4M #8M 设置进行随机读的时候所使用的缓冲区
bulk_insert_buffer_size = 64M #可以适当调整参数至16MB~32MB,建议8MB
lock_wait_timeout = 3600
explicit_defaults_for_timestamp = 1 #timestamp 用于timestamp类型
innodb_thread_concurrency = 0 #服务器有几个CPU就设置为几,建议用默认设置,一般设为8
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 0
transaction_isolation = REPEATABLE-READ #事务隔离级别
innodb_buffer_pool_size = 1024M #64M InnoDB使用一个缓冲池来保存索引和原始数据,官方建议物理内存的80%
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_data_file_path = ibdatal:1G:autoextend #表空间
innodb_flush_log_at_trx_commit = 1 #设置为0就等于innodb_log_buffer_size队列满后再统一存储,默认为1
innodb_log_buffer_size = 32M #2M 默认为1MB,通常设置为6-8MB就足够
innodb_log_file_size = 2G #32M 确定日志文件的大小,更大的设置可以提高性能,但也会增加恢复数据库的时间
innodb_log_files_in_group = 2 #为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_neighbors = 0
innodb_write_io_threads = 8 # 4 InnoDB 使用后台线程处理数据页上读 I/O(输出)请求的数量
innodb_read_io_threads = 8 # 4 启用单独的线程来回收无用的数据
innodb_purge_threads = 4 # 脏数据刷入磁盘(先保持系统默认, swap 过多使用时, 调小此值, 调小后, 与磁盘交互增多, 性能降低)
innodb_page_cleaners = 4
innodb_open_files = 65535 #为每个 InnoDB 表分配单独的表空间
innodb_max_dirty_pages_pct = 50 #InnoDB主线程刷新缓存池中的数据
innodb_flush_method = O_DIRECT #从innode刷新到磁盘,不经过系统write,fdatasync(默认),O_DSYNC,O_DIRECT http://blog.csdn.net/jiao_fuyou/article/details/16113403
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
innodb_lock_wait_timeout = 10 #InnoDB事务被回滚之前可以等待一个锁定的超时秒数
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1 #InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间,0关闭,1开启
innodb_online_alter_log_max_size = 4G #参数过大会报错
internal_tmp_disk_storage_engine = InnoDB
innodb_stats_on_metadata = 0
innodb_status_file = 1
innodb_status_output = 0
innodb_status_output_locks = 0
#performance schema
performance_schema = 1 #一种在数据库运行时实时检查server的内部执行情况的方法
performance_schema_instrument = '%=on'
#innodb monitor
innodb_monitor_enable="module_innodb"
innodb_monitor_enable="module_server"
innodb_monitor_enable="module_dml"
innodb_monitor_enable="module_ddl"
innodb_monitor_enable="module_trx"
innodb_monitor_enable="module_os"
innodb_monitor_enable="module_purge"
innodb_monitor_enable="module_log"
innodb_monitor_enable="module_lock"
innodb_monitor_enable="module_buffer"
innodb_monitor_enable="module_index"
innodb_monitor_enable="module_ibuf_system"
innodb_monitor_enable="module_buffer_page"
innodb_monitor_enable="module_adaptive_hash"
[mysqldump]
quick
max_allowed_packet =32M #500M 设定在网络传输中一次可以传输消息的最大值,系统默认为1M,最大可以是1G