我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql /etc/my.cnf参数详解(二)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql /etc/my.cnf参数详解(二)

#buffer相关

#buffer pool根据实际内存大小调整,标准为物理内存的50%
innodb_buffer_pool_size=15996M //默认值128M,innodb_buffer_pool_size | 134217728
key_buffer_size = 33554432
#根据物理内存大小设置 确保每个instance内的内存2G左右 <5000 1,>=5000 <9000 2,>=9000 <17000 4,>=17000 <33000 8,>=33000 16
innodb_buffer_pool_instances=16 //https://blog.csdn.net/qq_32099833/article/details/123616533 多个instance实例的原理
read_rnd_buffer_size = 524288
sort_buffer_size = 524288  
query_cache_size=0  //查询的缓存大小设置;

#安全相关
default_password_lifetime=0 //一个全局的MySQL密码过期时间,单位为天,也就是每过N天,就需要修改密码,否则会在连接后收到一个密码过期的报错。如果该参数设置为0,即表示密码永不过期。

#复制相关
// https://blog.csdn.net/j_ychen/article/details/109451373 
//为了解决主从复制延迟问题,在MySQL 5.7中,引入了基于组提交的并行复制(Enhanced Multi-threaded Slaves)

skip-slave-start = 0  //禁用skip-slave-start,slave进程会随着mysql启动而启动。skip-slave-start为开启
slave-parallel-type = LOGICAL_CLOCK  //mysql在5.7中加入了slave_parallel_type,默认值是database,需要改成基于时钟逻辑的LOGICAL_CLOCK
sync_master_info = 1000
//当 sync_master_info>0,slave在N个sync_master_info事件完成后更新mysql.slave_master_info表;当 sync_master_info = 0,不更新表

master-info-repository = TABLE 
//默认值:FILE,当设置为TABLE,slave会将master的状态和连接信息写入 mysql.slave_master_info 表,当设置为FILE ,slave会将master的状态和连接信息写入 master.info 文件。
//这个参数只有在复制线程停止工作才能更改。当使用多复制通道(multiple replication channels)的时候,这个参数必须设置成TABLE.

relay-log = /data/mysql/log/mysql-relay-bin
//relay-log的结构和binlog非常相似,只不过他多了一个master.info和relay-log.info的文件。
//master.info记录了上一次读取到master同步过来的binlog的位置,以及连接master和启动复制必须的所有信息。
//relay-log.info记录了文件复制的进度,下一个事件从什么位置开始,由sql线程负责更新。
relay-log-info-repository = TABLE
//默认值:FILE 当设置为TABLE,slave在relay_log中的pos信息将写入 mysql.slave_relay_log_info 表 当设置为FILE ,slave在relay_log中的pos信息将写入 relay-log.info 文件。
//这个参数只有在复制线程停止工作才能更改。当使用多复制通道(multiple replication channels)的时候,这个参数必须设置成TABLE.

relay-log-recovery = 1
//假设当从库意外宕机后,同时从库的relay log也一起损坏了,而主库的日志已经传到了从库,只是从库还没有来得及应用这些日志,那么从库该如何处理?
//在从库中将relay_log_recovery不设置或者设置为off,如果碰到上面的情形,从库会丢失那些没有应用的日志,主从会不一致。
//在从库中将relay_log_recovery设置为on,假如果碰到上面的情形,从库会自动放弃所有未执行的relay log,重新生成一个relay //log,并将从库的io线程的position重新指向新的relay //log。并将sql线程的position退回到跟io线程的position保持一致,重新开始同步,这样在从库中事务不会丢失。这个参数建议开启。

relay_log_index = mysql-relay-bin.index //同relay_log,定义relay_log的位置和名称;一般和relay-log在同一目录
slave_exec_mode = STRICT
//MySQL主从同步中,经常遇到的三种同步错误:
//1、在master上delete一条记录,若在slave上没有这条数据,会出现报错。
//2、在master上insert一条记录,若在slave上主键值已经存在,会出现报错。
//3、在master上update一条记录,若在slave上没有这条数据,会出现报错。
//如果slave的my.cnf已经配置了slave_skip_errors参数,则可以自动跳过报错,如果没有配置该参数,则可以用以下方法解决:
//mysql> set global slave_exec_mode='idempotent';
//默认值是strict(严格模式)
slave-parallel-workers = 16  //slave_parallel_workers数,默认为0,按需修改。
slave_net_timeout = 120
//slave_net_timeout系统变量指定在slave认为连接断开、中止读取并尝试重新连接之前,slave等待来自master的更多数据或心跳信号的秒数。默认值为60秒(一分钟)。在MySQL5.7.7之//前,默认值是3600秒(一小时)。
slave_pending_jobs_size_max = 1073741824
//在多线程副本(slave_parallel_workers > 0)上,确保系统变量 slave_pending_jobs_size_max 的值等于或大于复制源中系统变量 max_allowed_packet //的设置。slave_pending_jobs_size_max 的默认设置应该是128M,是 max_allowed_packet 的默认设置(64M)的两倍。

slave_preserve_commit_order = OFF
//在启用slave_preserve_commit_order的情况下,执行线程将等待,直到提交之前的所有事务。当线程等待其他工作线程提交其事务时,它将其状态报告为等待前一个事务提交。(在MySQ//L 5.7.8之前,它显示为Waiting for its turn to commit。)在多线程SLAVE上启用此模式可确保它永远不会进入源不处于的状态。这支持将复制用于读取横向扩展。

slave_rows_search_algorithms = INDEX_SCAN,HASH_SCAN

来源地址:https://blog.csdn.net/liys0811/article/details/132541925

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql /etc/my.cnf参数详解(二)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解/etc/sysctl.conf参数

如何理解/etc/sysctl.conf参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。linux:/etc/sysctl.conf 内核配置参数分析:htt
2023-06-06

[MySQL] 解决办法: Error: Transaction test error: file /etc/my.cnf from install of mysql-community-server

问题描述 在安装MySQL过程中出现错误 file /etc/my.cnf from install of mysql-community-server-xxx conflicts with file from package mariad
2023-08-30

MySQL配置文件my.cnf优化详解

MySQL 5.5.13 参数说明: [client] character-set-server = utf8 port = 3306 socket = /data/mysql/3306/mysql.sock [mysqld] ch
2022-05-21

Mysql explain 各参数详解

id序号select_typesimple:即简单select 查询,不包含union及子查询;primary:最外层的 select 查询;union:表示此查询是 union 的第二或随后的查询;dependentunion:union 中的第二个或后面的
Mysql explain 各参数详解
2016-04-15

MySQL query_cache_type 参数与使用详解

MySQL设置查询缓存的用意:把查询到的结果缓存起来,下次再执行相同查询时就可以直接从结果集中取;这样就比重新查一遍要快的多。 查询缓存的最终结果是事与愿违:之所以查询缓存并没有能起到提升性能的做用,客观上有如下两点原因1、把SQL语句的h
2022-05-25

编程热搜

目录