Mysql集群重启失败

今天药忘吃喽~ 2022-06-07 07:36 740阅读 0赞

问题描述

今天遇到一个问题,openstack集群的3个控制节点内存故障后,同事重启了三个机器,启动后,三个节点上的mysqld(其实就是mariadb)服务都起不来了

根据排查日志/var/log/mariadb/mariadb.log , 发现日志中显示[ERROR] WSREP: failed to open gcomm backend connection: 100: failed to reach primary view: 110 (Connection timed out)

根据网上查资料,初步判断是机器故障时,集群信息发生了异常,每个节点启动mysql的时候,都回去尝试跟其他节点的mysqld通信,结果导致各个节点的服务都起不来

最后根据建议的方法:

  1. 在各个节点上:
    rm -rf /var/lib/mysql/galera.cache rm -rf /var/lib/mysql/grastate.dat
  2. 然后在选个节点做主节点,在/lib/systemd/system/mysqld.service文件中,找到ExecStart配置,这是启动mysql的命令,然后增加–wsrep-new-cluster参数,然后坐等启动;如果系统不支持systemctl管理,那么直接执行service mysql start –wsrep-new-cluster(服务名称视具体系统而定,一般是mysqld或者mysql,如果是centos7也可能必须是mariadb-server,或者其他)
  3. 然后在其他节点启动mysqld即可,systemctl start mysqld, 或者其他启动命令

发表评论

表情:
评论列表 (有 0 条评论,740人围观)

还没有评论,来说两句吧...

相关阅读

    相关 redis-

    关闭 目前redis-trib的功能还比较弱,需要重启集群的话先手动kill掉各个进程,然后重新启动就可以了 注意这样可能会出现问题 \[root@T1 redis-3.

    相关 临时

     集群节点临时重启 当修改配置时可能需要重启集群才生效,或者集群发生严重错误无法恢复时都可能需要重启集群 一个集群节点重启前要先临时禁用自动分配,设置cluster.r

    相关 内机器

    集群内机器重启     在云计算环境下,一个集群代表一堆机器组成的机器组,一般由一个admingateway打通通道(ssh安全通道)到该集群中的其他机器。  

    相关 Redis docker

    当我们关闭虚拟机时, 而虚拟机上有6个redis集群,这是redis集群也就全部关闭了,那么如何重新启动redis集群呢? 首先严谨起见,我们启动其中一个redis节点 d