MySQL主从复制时报错‘log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master;’处理

36 篇文章 0 订阅

错误信息提示在从主服务器读取二进制日志数据时发生了致命错误 1236,原因是某个日志事件超过了max_allowed_packet参数设定的最大允许包大小。为了解决这个问题,您需要在主服务器上增大max_allowed_packet的值。以下是详细的解决步骤:

  1. 登录主服务器的MySQL Shell:

    使用具有管理员权限(如root用户)的账号登录MySQL:

    Bash
    mysql -u root -p

    输入您的MySQL密码后,将进入MySQL命令行界面。

  2. 检查当前的max_allowed_packet设置:

    在MySQL命令行中执行以下查询,查看当前max_allowed_packet的值:

    Sql
    SHOW VARIABLES LIKE 'max_allowed_packet';

    记录下当前的值,以便在调整后对比。

  3. 增大max_allowed_packet的值:

    要解决此问题,您需要将max_allowed_packet的值设置得足够大以容纳日志中的大事件。通常,将其设置为几百兆字节(如512MB或1GB)应该足以应对大多数情况。请根据您的实际需求和系统资源进行适当调整。在MySQL命令行中执行以下语句:

    Sql
    SET GLOBAL max_allowed_packet = 1073741824;  -- 设置为1GB

    如果您希望该更改在MySQL重启后仍然有效,您需要编辑MySQL配置文件(通常是my.cnfmy.ini,具体位置可能因操作系统和安装方式而异)。找到 [mysqld] 部分(如果没有,自行添加),并在其中添加或修改以下行:

    Ini
    [mysqld]
    max_allowed_packet=1073741824  # 设置为1GB

    保存并关闭配置文件后,重启MySQL服务以使更改生效:

    Bash
    sudo systemctl restart mysqld  # 对于使用systemd的系统
    service mysql restart          # 对于其他系统
  4. 验证max_allowed_packet已更新:

    重新登录MySQL Shell并再次检查max_allowed_packet的值,确保它已成功更新到您设定的新值:

    Sql
    SHOW VARIABLES LIKE 'max_allowed_packet';

完成以上步骤后,主服务器上的max_allowed_packet应已调整至合适的大小,从而避免在读取二进制日志时因包大小限制而引发的错误。现在您可以尝试重新执行之前导致错误的操作,看看问题是否已得到解决。

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值