【MySQL运维】MySQL 5.7 配置文件模板及详细说明

TangLu MySQL 2020-09-25 9158 2

配置文件模板见文章末尾,在使用前建议先熟悉每个配置项的作用,根据服务器与业务的实际情况进行调整。


一、MySQL配置文件路径规则

MySQL对于配置文件有一个顺序规则,它是按照/etc/my.cnf > /etc/mysql/my.cnf > /usr/local/mysql/etc/my.cnf > ~/.my.cnf 这样的顺序进行自动寻找,如果某一个参数同时存在于多个配置文件中则遵循参数替换原则,以最后一个配置文件中的配置生效


二、my.cnf作用域相关配置

MySQL配置文件分为了多个字段,比如[mysqld]、[client]等,在使用不同的客户端进行数据库操作时读取到的字段是不同的

mysql_conf.jpg


· [mysqld]:服务端选项作用域,大部分配置都在该作用域下

· [mysql]:mysql客户端作用域,该作用域下的配置仅对mysql这个命令客户端生效

· [client]:其他客户端的作用域。该作用域下的配置对mysqladmin、myqsldump等客户端命令都生效。由于不是所有客户端都有相同的配置,可能会因为多余的配置导致启动报错

· [mysqldump]:mysqldump客户端作用域

· [mysqladmin]:mysqladmin客户端作用域

· [mysqld-5.7]:对指定版本的服务端生效


my.cnf客户端相关配置

· prompt:自定义提示符,方便查看当前所操作数据库,如prompt= "[\\u@linuxe][\\d]>"
· no-auto-rehash:禁止自动读取元数据,虽然无法再进行命令补齐,但是可以降低负载。如果在使用mysql命令连接服务卡在提示符就是元数据被锁导致,用mysql -A选项也可以启用该功能

· default-character-set:客户端字符集设置,建议和服务端character_set_server参数所配置的字符集保持一致

· tee:将操作记录写到日志中作为审计,如tee= "/data/dblog/tee.log" 


四、my.cnf服务端相关配置

1、数据库基本信息

· user:指定管理数据库服务的用户,如user=mysql

· basedir:MySQL安装路径,如basedir=/usr/local/mysql
· datadir:MySQL数据文件存放路径,如datadir=/data/mysql/data
· port:MySQL实例端口,如port=3306

· extra_port:额外的连接端口,通常用于连接数用光后给root账号处理使用(8.0有新的admin_address参数)   

· extra_max_connections:额外的连接数,配合extra_port使用

· socket:MySQL sock文件路径,如socket=/tmp/mysql.sock 

· character-set-server:字符集设置,如character-set-server=utf8mb4

· skip-character-set-client-handshake:强制客户端字符集和服务端一致
· default-storage-engine:默认存储引擎,如default-storage-engine=INNODB
· skip-name-resolve:建议开启,开启后可以避免把IP反解析成域名(比如127.0.0.1被解析成localhost),这样使用IP来做权限控制更方便
· server_id:主从复制会用到,每个节点ID不能相同,可以避免双主架构带来的循环复制问题

· tmpdir:临时表路径,如tmpdir=/data/mysqltmp/mysql3306

· max_connect_errors:单个客户端连接失败的最大次数,密码错误或者网络问题产生的连接失败都会计数,超过该次数就会被服务永久拒绝连接,直到使用mysqladmin flush-hosts才会恢复,可以一定程度上防止恶意连接

· max_user_connections:每一个用户所能产生的最大连接数,默认为0不限制。设置该值后,可以避免某个程序连接池配置不合理导致大量连接被占用

· back_log:当客户端连接数达到max_connections上限后,允许多少个客户端进入排队队列

· max_allowed_packet:MySQL与客户端建立连接后能传输的数据包限制(数据包会经过封装及压缩,所以不同等SQL语句或插入数据的大小)。如果一个包含大批量数据更新的SQL超过了该参数的限制就会导致数据插入失败或者主从同步失败,该变量需要将客户端和服务端设置为同样的值,最大可配置为1G,也建议配置为1G

· time_zone:默认为SYSTEM,即系统的操作时区。对于国内业务建议配置为default-time-zone='+08:00',其他地区和开发确认取对应时区即可。明确时区相比设置时区为system的好处有2个,1是system多了一层系统调用,对性能有轻微损耗;2是操作系统的时区设置可能不归DBA管,可能会因为运维人员的疏忽导致配置不当,如果设置的时区不正确则会导致NOW()、CURTIME()这类系统函数以及timestamp类型字段存储的数据和理想值不一样

· performance_schema:显式启用performance_schema数据库,该选项在5.7开始默认是启用的

· lower_case_table_names:用于设置表文件名大小写存储规则。该值默认为0,表示区分大小写进行存储,同时查询时也区分大小写;如果设置为1表示将大写的表名自动转换为小写进行存储,同时查询语句也会将大写语法自动转换为小写。从8.0开始该值不能进行修改,需要在实例进行初始化时就指定好,或者统一代码中的大小写

· init_connect:设置每个会话连接后自动执行的命令,比如SET NAMES或者SET AUTOCOMMIT

· open_files_limit:当使用非root用户对数据库进行操作时(比如xtrabackup备份)所能打开的文件数量


2、数据库内存信息(尽可能的为数据库分配更多的内存,减少与磁盘的IO)

· max_connections:客户端最大连接数,超过该连接后就会出现Too many connections的错误。如果没有配置extra_port参数,那么root账号还能连接一次。该配置建议参考show status like '%Threads_running%'的值进行调整,不能盲目调大,因为MySQL申请内存的计算方式是max_connections*(sort_buffer_size+read_buffer_size+read_rnd_buffer_size+join_buffer_size+binlog_cache_size+thread_stack),也就是说每个客户端连接后还要单独申请内存空间,由于binlog_cache_size的空间是在申请时一次给够,并且连接池回收后才会释放,如果客户端配置太多很容易OOM

· sort_buffer_size:排序语句生成的结果会临时存放到内存空间中,查询结束后释放内存。如果查询结果超过这个大小则会在硬盘生成临时表进行存放,调大后可以提升order by语句的效率。该参数默认256K,建议调至4-8M。经过Percona测试发现盲目调大会起到反效果,通常Sort_merge_passes/(Sort_scan+Sort_ range)>2说明sort_buffer_size设置偏小

show global status like '%sort%'

· read_buffer_size:顺序读缓冲区大小,默认128K,建议调整为4-8M

· read_rnd_buffer_size:随机读缓冲区大小,默认256K,建议调整为4-8M

· join_buffer_size:默认256K,建议调整为4-8M

· binlog_cache_size:没有执行完成的事务所产生的日志会暂时存放在binlog_cache中,而当存放的cache超过该参数值就会使用临时文件来存放,该参数默认32K,适当调大可以加快binlog写入效率

thread_stack:每个线程连接时申请的内存空间,默认256K

· key_buffer_size:默认64M

· tmp_table_size:单个事务可以使用内存临时表的最大值,默认64M,临时表可以提升group by和联合查询的性能。如果内存临时表超过该参数限额,则开始生成基于磁盘的临时表(tmp_disk_tables),此时查询性能是有明显影响的。通过show status like '%tmp%' 查看tmp_disk_tables的值,如果增长很快说明tmp_table_size设置过小,可以适当调大

· max_heap_table_size:允许的内存临时表总大小,防止过多的tmp_table_size导致占用太多内存


3、数据库超时配置

· interactive_timeout:交互模式下会话超时时间,比如mysql客户端,单位为秒,建议600-1800秒之间
· wait_timeout:会话超时时间,单位为秒,默认为8小时。为了避免出现太多长时间的空闲连接(比如JDBC客户端连接成功后一直没有操作,处于Sleep空闲状态),该参数建议配置600-1800秒即可

· rpl_stop_slave_timeout:停止从库时的超时时间,如果超时会报错,避免从库回滚大事务一直卡住。如果从库存在大事务建议先直接停止mysql,增加索引后再stop slave

· innodb_lock_wait_timeout:InnoDB行锁等待超时时间,比如事务A对某行数据进行修改但未提交,此时事务B也修改该行数据时就会被锁,直到超时。该值默认50,建议5-20秒

· lock_wait_timeout:元数据锁超时时间,默认是1年,设置30秒足够

· max_execution_time:控制查询语句执行的最长时间,单位是毫秒。避免单个语句意外执行太长时间,比如一些程序框架会使用begin\commit声明事务或者代码错误的把SELECT语句放入到事务中


4、数据库日志信息

· 错误日志配置

· log_error:错误日志路径,如/data/mysql/logs/error.log


· 慢查询日志配置
· slow_query_log:慢日志开关,on代表打开

· slow_query_log_file:慢日志路径,如/data/mysql/logs/slow.log,不指定的话默认在数据库文件目录下,名为hostname-slow.log
· long_query_time:慢日志标准,达到这个标准的才会被记录慢日志,单位为秒,设为0代表记录所有查询

· log_queries_not_using_indexes=1:将没有使用索引的语句都记录到慢日志中,即便没有达到阈值
· log_throttle_queries_not_using_indexes=60:和上面选项配合使用,如果没有使用索引的语句执行频繁,那每分钟最多只记录60次
· log-slow-admin-statements:记录由ALTER TABLE等语句引发的慢查询


· 二进制日志配置
· log_bin:binlog日志路径,如/data/mysql/logs/master-bin

· log_bin_index:binlog索引文件路径,如/data/mysql/logs/master-bin.index
· binlog_format:binlog日志格式,推荐row

· binlog_rows_query_log_events:将所执行的原始sql语句记录到二进制日志中,更便于分析,否则看到的都是二进制内容

· expire_logs_days:binlog过期天数
· max_binlog_size:单个binlog文件大小

· log_timestamps:默认为UTC时间,这样查看日志会存在时区问题,建议修改为SYSTEM,和系统时间一致


· 中继日志配置

· relay-log:relaylog日志路径与文件名,如/data/mysql/logs/relay-bin

· relay-log-purge:是否自动清理已经应用完的relaylog,1为自动清理  

· relay_log_recovery:建议为1,开启中继日志恢复模式,可以保证数据一致性。如果从库宕机导致当前中继日志损坏的话,就放弃该日志并重新从· master上获取

· max_relay_log_size:单个中继日志文件的大小,如果没有设置的话会按照max_binlog_size的大小进行滚动


· Redo Log

· innodb_log_file_size(需重启数据库才能生效):redo log日志大小,默认是48M,SSD硬盘建议配置到4G。如果设置太小会导致数据库经常flush日志到磁盘影响性能,配置越大写操作的效率越高,但是崩溃恢复时间会稍长一点

· innodb_log_buffer_size:redo log缓存区域大小,增加缓存大小可以减少I/O,建议配置1-32M即可(假设一个事务为2K,32M缓存最大可以支持16384 TPS,已经非常客观)。当满足master thread每秒刷新buffer、buffer写满时刷新、事务提交时刷新、服务重启时刷新几种情况之一时将刷新缓存中的数据到磁盘中

· innodb_log_files_in_group:redo log数量,默认2,最多支持4个,redolog日志命名为ib_logfile0~ib_logfileN


5、双1参数

· innodb_flush_log_at_trx_commitredolog刷盘策略,建议为1。0是每秒刷新一次redo buffer到磁盘,当服务崩溃可能丢失1秒数据;1是每次事务提交时都立即刷新到磁盘;2是每次事务提交都立即刷新到os cache中,随后刷新到磁盘,机器断电才会丢失1秒数据

· sync_binlog:binlog刷盘策略,建议为1。当值为0代表事务提交时仅将Binlog信息写入OS Cache,但是由系统自己控制刷盘时机,如果系统宕机则丢失缓存中的所有数据;当值为1时代表每个事务提交时同步把Binlog刷新到磁盘,当数据库或操作系统宕机恢复后,由于Binlog中缺少的任何事务都是处于准备阶段,所以MySQL会回滚这些事务,保证无数据丢失,数据库安全性最高,但是性能损耗也最大;当值为N时代表每N次事务提交才会刷盘,如果操作系统在这个时候宕机,数据库可能会丢失N个事务


6、主从复制相关配置

· log_slave_updates:开启该选项后从库会将主库发送过来的binlog操作也记录一份在从库中,如果从库配置了binlog而没有开启该选项则binlog为空。不承载高可用的从库可以关闭节约IO性能,如果需要级联复制的场景可以开启

· slave_parallel_workers:该值为0代表单线程复制,大于1时表示启用多线程复制。为了提升从库复制效率通常和CPU核数一致,该变量动态设置后需要重启复制线程才会生效。并行复制开启后通过processlist看到状态为system lock的system user用户就是并行复制的线程

· slave_parallel-type:并行复制方式,5.7之前是基于DATABASE级别的粒度进行并行复制,并行效率其实是很差的,除非每个表都单独建立一个库。而5.7开始采用LOGICAL_LOCK实现了Group Commit并行回放。主库会把不冲突的事务放在同一个Group,然后提交在从库,从库再并行回放。在binlog中通过last_committed的值来标记事务所属的组,如果两个事务last_committed值一致,这两个事务就属于同一个组

· slave_preserve_commit_order:在并行复制开启后,开启该参数可以保证从库回放事务的顺序与主库提交的顺序完全一致。比如主库执行了A、B、C 3个事务,且last_commited相同,此时从库满足并行回放的条件。如果该参数没有开启的话,顺序可能是乱的。该选项动态开启时需要先停止SQL线程,并且在8.0.19以前从库必须同时开启log_bin和log_slave_updates才能进行配置

· binlog_group_commit_sync_delay:并行复制时延迟多少微妙后才会调用fsync

· binlog_group_commit_sync_no_delay_count:并行复制时累计多少次以后就调用fsync,即便没有达到binlog_group_commit_sync_delay的阈值

· transaction_write_set_extraction(该配置在5.7.22开始支持):指定多线程复制时的HASH算法,建议配置为XXHASH64

· binlog_transaction_dependency_tracking(该配置在5.7.22开始支持):指定多线程复制时并行事务依赖检查的方法,支持COMMIT_ORDER(默认)、WRITESET、WRITESET_SESSION三种配置。其中COMMIT_ORDER表示只有同组事务才能生成相同的last_committed并行回放。而WRITESET和WRITESET_SESSION都可以做到只要事务不存在锁冲突就可以并行回放,二者的区别是前者支持“同一个session执行的事务在从库可以并发执行”,这样可能导致从库执行事务的顺序和主库binlog不一致。使用WRITESET_SESSION则可以实现同一个SESSION下的事务不可并发

· relay_log_info_repository:从库中继日志位点信息的保存方式,默认为file是将这些信息写入relay_log.info文件。建议设置为table,将信息写入到mysql.slave_relay_log_info表,可以保证服务崩溃后信息不丢失

· master_info_repository:从库连接主库的账号密码(明文保存)、状态等信息的保存方式,默认为file,写入master.info文件。建议设置为table,可以写入到mysql.slave_master_info表中

sync_master_info=N:主从同步信息更新到到master_info表的频率,N为事务数


7、InnoDB信息

· InnoDB性能

· innodb_buffer_pool_size:MySQL最重要的性能参数,该变量用于设置数据和索引的缓存区大小,使用缓存区中的数据就可以避免与磁盘产生大量交互,从而提升效率,该变量建议设置为系统最大内存的70%(注意该变量的值必须是innodb_buffer_pool_instance * innodb_buffer_pool_chunk_size(默认128M,不能动态调整)的倍数)。5.7开始支持动态配置,但是在线修改的话值只能为字节格式,配置文件可以使用M、G单位。通过SHOW GLOBAL STATUS LIKE '%innodb%'命令查看MySQL剩余buffer,如果Innodb_buffer_pool_pages_free值很小或为0说明buffer_pool已经用光了,而Innodb_buffer_pool_wait_free不为0,说明产生过对应次数的等待内存释放行为。这2种情况都需要增加innodb_buffer_pool_size的值。

· innodb_buffer_pool_instances:将buffer_pool_size平均划分多个区域,提升并发性能,建议和CPU核数一致

· innodb_flush_method,默认为fsync,代表刷数据到磁盘的时候会先申请系统级别的缓存,这样性能虽然会更好但是会申请额外的内存。由于MySQL除了innodb_buffer_pool_size占用内存,每个连接还会单独申请内存空间,再加上fsync申请的内存,很容易导致OOM。建议修改为O_DIRECT,这样可以跨过系统缓存直接写到磁盘。

· innodb_thread_concurrency:并发查询数(非并发连接),默认为0表示不限制,通常也不会限制。如果为了避免并发太多导致CPU跑满可以设置一个合理值。由于锁等待产生的并发并不会带来CPU开销,所以这些并发不会占用这个连接名额,避免锁等待而让数据库不可用

· innodb_strict_mode:开启严格模式,可以避免非空字段插入null等情况

· innodb_autoinc_lock_mode:自增锁模式,可以配置为0,1,2,默认为1。2的并发性能最高,它表示如果事务A使用INSERT语句显式插入了多个不连续的自增列时,每一行数据处理完毕都会立马释放锁,不需要等待整个事务全部执行完毕再释放锁,需要注意的是binlog_format如果为statement会导致数据不一致

· innodb_stats_persistent:是否持久化数据和索引的统计信息到磁盘中,优化器将使用到这些统计数据。持久化以后当数据库发生重启也可以重新加载这些统计数据而不用重新去计算。默认为ON,开启后统计信息是存放在mysql.innodb_table_stats和mysql.innodb_index_stats中

· innodb_stats_auto_recalc:是否开启统计信息重新计算,默认为ON,当数据量变更超过10%就会自动重新统计并刷新统计数据

· innodb_stats_on_metadata:建议为off,关闭动态统计被触发

· innodb_io_capacity:脏页刷新频率,默认200即代表每次刷新200页(每个页默认16K)。如果磁盘速度快可以调大,建议设置为磁盘IOPS的一半或更高,SSD的话通常可以达到1W+,可以通过fio来测试磁盘IO

· innodb_io_capacity_max:脏页最大刷新频率,建议和磁盘IOPS一样

· innodb_flush_neighbors:默认为1代表刷脏页时会把邻近脏页一起刷到磁盘。对于机械硬盘能够减少磁盘寻道的开销,提升性能;但是对于SSD提升很小,建议为0关闭

· innodb_flush_sync:当设置为ON时,如果需要数据库能快速刷新CheckPoint,自动忽略 innodb_io_capacity 的限制,以达到最好的刷新速度

· innodb_data_file_path:共享表空间设置,该文件默认是创建一个10M的文件并且自动扩展,为了防止文件过大可以限制其上限

· innodb_file_per_table:是否开启独立表空间,5.6开始默认打开也建议打开。开启后每个表数据都会单独存放在一个以表命名后缀为.ibd文件中分散IO提升性能,也便于表的维护,否则所有表数据会全部存放在一个共享表空间文件ibdata1中,这个文件即便删除了数据也无法释放空间,只是将表空间被标记为可复用,所以建议开启独立表空间并限制共享表空间的大小

· innodb_buffer_pool_dump_at_shutdown:ON代表每次停机会dump出buffer pool中的数据

· innodb_buffer_pool_filename:dump出的数据文件名,如ib_buffer_pool

· innodb_buffer_pool_load_at_startup:ON代表启动服务时加载dump文件到内存进行缓存,提升性能

· table_open_cache:指定打开表的缓存区大小,也可以理解为允许缓存客户端打开多少张表。这个配置需要结合open_tables(当前打开的表数量)与opened_tables(服务启动以来总共打开的表数量)两个状态值来调整。如果open_tables的值接近table_open_cache代表缓存区已经使用完,如果此刻opened_tables又在不断增加,说明mysql还在不断打开表。这个使用缓存是没有起到作用的,所以需要调大缓存区的值,但是不能大于系统文件描述符。

· innodb_large_prefix:是否允许单列的索引长度超过767字节

· innodb_old_blocks_pct:MySQL为避免LRU算法把冷数据放到头部,所以将LRU链表拆分为热、冷数据两个部分,优先对冷数据进行淘汰。该参数控制了冷热数据比例,默认37代表冷数据占37%

· innodb_old_blocks_time:控制冷数据转为热数据的策略,默认1000毫秒,代表数据页被加载到缓存页N毫秒后如果再次被访问,就挪动到热数据区域表头部。这个思想也可以用在Redis上,可以每天统计出来哪些商品被访问的次数最多,然后通过定时作业把这些热门商品预加载到Redis里,第二天对热门商品的访问就会优先走Redis缓存了

· innodb_adaptive_hash_index:自适应哈希索引,建议关闭,避免因为哈希索引带来的锁竞争

· innodb_page_size:InnoDB页大小,默认是16KB。在MySQL中页是磁盘和内存交互的基本单位,也就是数据库IO操作的最小单位。在一个页中可以存放多条数据,当数据库读取数据时,不管是一行还是多行,至少需要一个页来完成


· Undo Log

· innodb_undo_tablespaces:undolog独立表空间个数,该配置在mysql初始化后就无法进行修改,8.0以前默认为0不为undolog设置独立表空间,而是记录到ibdata文件中。如果设置为4则代表创建命名为undo001~undo004的undolog

· innodb_max_undo_log_size:单个回滚日志最大占用空间大小,默认为10M
· innodb_undo_log_truncate当undolog超过innodb_max_undo_log_size阀值时对undolog空间进行收缩到10M


五、my.cnf配置文件示例

[client]
port = 3310
socket = /tmp/mysql3310.sock

[mysql]
no-auto-rehash
prompt = "\\u@\\d \\R:\\m> "
default-character-set = utf8mb4

[mysqld]
### General ###
user							 = mysql
port							 = 3310
extra_port                  				 = 13310
extra_max_connections       				 = 10
basedir							 = /usr/local/mysql
datadir							 = /data/mysql3310/data
socket							 = /tmp/mysql3310.sock
tmpdir							 = /data/mysql3310/tmp/
character_set_server					 = utf8mb4
collation_server            				 = utf8mb4_general_ci
default-storage-engine					 = InnoDB
default-time-zone		    			 = "+8:00"
server-id						 = 15901
transaction_isolation					 = READ-COMMITTED
max_connect_errors		    			 = 500
#max_user_connections       				 = 100
back_log						 = 1024
open_files_limit		    				= 65535
max_allowed_packet		    				= 512M
init_connect			    				='set names utf8mb4'
group_concat_max_len						= 10240
table_open_cache		    				= 8192
table_definition_cache						= 8192
log_timestamps								= system
performance_schema							= ON
lower_case_table_names						= 1
explicit_defaults_for_timestamp 			= 0
sql_mode									="NO_ENGINE_SUBSTITUTION"
skip-character-set-client-handshake 		= 1
skip-name-resolve
skip-ssl
skip-external-locking
#skip-grant-tables

### Timeout ###
connect_timeout								= 20
interactive_timeout							= 3600
wait_timeout								= 3600
lock_wait_timeout							= 300
max_execution_time							= 60000
innodb_lock_wait_timeout	        		= 10
rpl_stop_slave_timeout                 		= 180

### Memory ###
innodb_buffer_pool_size		= 32G
innodb_log_buffer_size 		= 32M
tmp_table_size         		= 64M
max_heap_table_size    		= 64M
key_buffer_size        		= 64M
max_connections        		= 500
 read_buffer_size      		= 10M
 sort_buffer_size      		= 10M
 read_rnd_buffer_size  		= 10M
 join_buffer_size      		= 10M
 binlog_cache_size     		= 10M

### Error Log ###
log_error					= /data/mysql3310/log/error.log

### Slow log ###
slow_query_log							= 1
slow_query_log_file 					= /data/mysql3310/log/slowlog/mysql.slow
long_query_time							= 1
log_slow_admin_statements				= 1
#log_queries_not_using_indexes			= 1
#log_throttle_queries_not_using_indexes = 10
#log_slow_slave_statements				= 1
#min_examined_row_limit					= 100

### Binlog ###
sync_master_info				= 1
log_bin							= /data/mysql3310/log/binlog/mysql-bin
binlog_format   	    		= row 
binlog_rows_query_log_events    = on
max_binlog_size					= 1024M
expire_logs_days 	    		= 10

### Relay Log ###
relay-log						= /data/mysql3310/log/relaylog/relay-bin
relay_log_recovery				= 1
relay-log-purge					= 1

### Replication ###
master_info_repository		        = TABLE
relay_log_info_repository 			= TABLE
skip_slave_start					= 1
log_slave_updates					= 1
slave_parallel-type			        = LOGICAL_CLOCK
slave_parallel_workers		        = 8
slave_preserve_commit_order			= 1
slave_net_timeout					= 10 
# read_only							= 1
# super_read_only					= 1
transaction_write_set_extraction     =XXHASH64
binlog_transaction_dependency_tracking = WRITESET_SESSION

### Gtid ###
gtid_mode = on
enforce_gtid_consistency = 1
binlog_gtid_simple_recovery = 1

### 半同步复制 ###
plugin_dir=/usr/local/mysql/lib/plugin                                                                                                                                                                          
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"                                                                                                                     
rpl_semi_sync_master_enabled=1                                                                                                                                                                                  
rpl_semi_sync_slave_enabled=1                                                                                                                                                                                   
rpl_semi_sync_master_wait_no_slave=OFF                                                                                                                                                                          
rpl_semi_sync_master_wait_for_slave_count=1                                                                                                                                                                     
rpl_semi_sync_master_wait_point=AFTER_SYNC                                                                                                                                                                      
rpl_semi_sync_master_timeout=3000     

#loose_rpl_semi_sync_master_enabled 	= 1
#loose_rpl_semi_sync_slave_enabled 		= 1
#loose_rpl_semi_sync_master_timeout 	= 5000

### 双1 ###
innodb_flush_log_at_trx_commit 	= 1
sync_binlog 			   		= 1

### Innodb ###
innodb_data_home_dir						= /data/mysql3310/data
innodb_data_file_path 						= ibdata1:1024M:autoextend:max:16G
innodb_buffer_pool_instances 				= 16  
innodb_support_xa							= 1
innodb_flush_method 		 				= O_DIRECT
innodb_file_per_table 						= 1
innodb_log_file_size 						= 4G
innodb_log_files_in_group 					= 4
innodb_buffer_pool_load_at_startup			= 1
innodb_buffer_pool_dump_at_shutdown			= 1
innodb_read_io_threads 						= 16
innodb_write_io_threads 					= 16
innodb_purge_threads	 					= 8
innodb_io_capacity 	 						= 10000
innodb_io_capacity_max 	 					= 20000
innodb_max_dirty_pages_pct	 				= 75
innodb_flush_neighbors 	 					= 0
innodb_thread_concurrency              		= 0
innodb_strict_mode 	 						= 1
innodb_stats_on_metadata            		= 0
innodb_print_all_deadlocks 					= 1
innodb_autoinc_lock_mode					= 2
innodb_sort_buffer_size 		       		= 67108864
innodb_large_prefix		       				= 1
innodb_page_size 	  						= 16384
innodb_open_files							= 65535
innodb_rollback_on_timeout					= 1
innodb_adaptive_hash_index     		   		= 0

### Undo Log ###
#innodb_max_undo_log_size				= 1G  
#innodb_undo_tablespaces				= 4  
#innodb_undo_logs 	 					= 128 
#innodb_undo_log_truncate				= 1   

[mysqldump]
quick
max_allowed_packet  = 512M

[mysqld_safe]
open-files-limit = 65535

评论

精彩评论
2020-11-24 14:19:11

请问 ,咱们站点的广告在哪里, 我给你点点.

2020-11-24 15:23:07

@silent3035 @silent3035:感谢 在网站右侧标签栏下方有2个广告区