Mysql主从配置参数说明

2022-12-30 09:58:09 浏览数 (2)

此配置是我在使用过程中总结出比较实用的配置参数,基于GTID的主从复制场景中使用:

[mysqld]

port=23306                                    --mysql进程端口

read-only=0                                   --关闭只读模式

gtid_mode=on                               --开启GTID,全局事务ID模式

enforce_gtid_consistency=on        --强制GTID一致性,配合gtid_mode,必选

auto-increment-offset=1                --自增长起始值,主从复制场景中,主从的起始值需要不同

auto-increment-increment=2         --自增长步进值,主从复制场景中,步进值需要一致,保证主从中自增长主键不冲突

log-slave-updates=1                     --作为从库使用时,开启log-slave-updates配置,能使从库的sql线程读取主库的bin-log时,不会将这些同步数据写入从库的bin-log中

relay_log_info_repository = TABLE        --relay.info的存储形式,此处使用table,将relay.info中的信息记录在table中相对安全,可以避免relay.info更新不及时,SLAVE 重启后导致的主从复制出错

master_info_repository = TABLE            --作用同relay_log_info_repository

relay_log_recovery = on                         --开启relay_log恢复功能,当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。

basedir = /var/mysql/mysql                     --base目录

datadir = /var/mysql/mysql/data              --数据目录

innodb_data_home_dir = /var/mysql/mysql/data                   --innodb引擎的共享表空间数据文件根目录

innodb_log_group_home_dir = /var/mysql/mysql/data    --在事务被提交并写入到表空间磁盘文件上之前,事务数据存储在InnoDB的redo日志文件里。这些日志位于innodb_log_group_home_dir变量定义的目录中,通常我们把这个目录设置与innodb_data_home_dir变量相同。为了获得最佳性能,建议分离innodb_data_home_dir和innodb_log_group_home_dir到单独的物理存储阵列上,这样可以保证IO资源不起冲突,利于服务器处理大量高并发连接。

innodb_buffer_pool_size=4096M        --该变量将数据存导入到内存中,可以减少大量的IO资源消耗。当事务提交时,保存脏数据,后续在刷新到磁盘。当我们调整innodb_buffer_pool_size大小时,innodb_log_buffer_size和innodb_log_file_size也应该做出相应的调整。

socket=/var/lib/mysql/mysql.sock        --socket文件目录

character-set-server=utf8                     --服务器编码集

collation-server = utf8_unicode_ci         --编码

local_infile=0                                           --禁用所有LOAD DATA LOCAL

bind-address=0.0.0.0                              --bind ip

init-connect='SET NAMES utf8'              --连接初始化后动态执行语句

max_connections = 10000                      --最大连接数

log-bin = /var/mysql/backup/mysql-bin            --bin-log日志目录

binlog_format = row                                         --bin-log格式,包括STATEMENT,ROW,MIXED

server-id=1                                                     --server-id,必须是数字类型,主从需要不一致

slave-skip-errors=all                                      --忽略错误,并不能跳过所有DDL所引起的主从错误,使用格式:--slave-skip-errors=[err_code1,err_code2,...|all|ddl_exist_errors]

max_allowed_packet=32M                            --一次会话最大包限制

interactive_timeout=120                                --针对交互式连接,通过mysql客户端连接数据库是交互式连接

wait_timeout=120                                          --针对非交互式连接,通过jdbc连接数据库是非交互式连接

skip-name-resolve=1                                     --跳过域名解析

[mysqld_safe]

log-error=/var/hms/installer/mysql/mysqld.log

[client]

default-character-set=utf8

socket=/var/lib/mysql/mysql.sock

[mysql]

default-character-set=utf8

0 人点赞