mysql双主及keepalive双活部署

mysql

*捣鼓了一个周末,完整的整理出了这个mysql5.7.29双主HA最清晰最详细最易读的部署方案。本人辛苦的原创,照着我这个文档部署,你肯定可以完美部署。*

环境

192.168.126.34lsyk04Mysql 5.7.29,keepalived 1.3.5
192.168.126.35lsyk05Mysql 5.7.29,keepalived 1.3.5
192.168.126.88vip

安装mysql

  1. 解压 root执行

    tar -xvf mysql-5.7.29-el7-x86_64.tar
    tar -zxvf mysql-5.7.29-el7-x86_64.tar.gz -C /opt/
    mv /opt/mysql-5.7.29-el7-x86_64 /opt/mysql-5.7.29
    
  2. 配置单机mysql

    # 创建mysql用户组和用户并修改权限
    groupadd mysql
    useradd -r -g mysql mysql
    passwd mysql
    # 密码为:fa
    
    # 创建数据文件目录 
    mkdir -p /data/mysql
    mkdir -p /opt/mysql-5.7.29/logs
    
    # 配置配置文件:
    vi /etc/my.cnf 
    # 修改配置如下
    
    [mysqld]
    basedir=/opt/mysql-5.7.29/
    datadir=/data/mysql
    port=3306
    character-set-server=utf8mb4
    log_error=/opt/mysql-5.7.29/logs/error.log
    
    # 变更所属
    chown -R mysql:mysql /opt/mysql-5.7.29/
    chown -R mysql:mysql /data/mysql
    chown mysql:mysql /etc/my.cnf
    
    # 配置环境变量  
    vi /etc/profile
    
    # 里添加如下环境变量
    export MYSQL_HOME=/opt/mysql-5.7.29
    export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/support-files
    
  3. 生成临时密码 root执行

    /opt/mysql-5.7.29/bin/mysqld --initialize --user=mysql
    # 获取密码
    vi /opt/mysql-5.7.29/logs/error.log
    # 查找
    2020-09-16T15:49:40.983087Z 1 [Note] A temporary password is generated for root@localhost: (hLlo!qCL7Of
    
    
  4. 启动mysql服务并修改密码: root用户启动

    /opt/mysql-5.7.29/support-files/mysql.server start
    
    # 登录,输入上述找到的临时密码
    mysql -uroot -p
    
    # 更改密码
    mysql> SET PASSWORD = PASSWORD('fa');
    
    # 赋权限 接着上面执行:
    #(执行下面的语句  .:所有库下的所有表  %:任何IP地址或主机都可以连接)
    mysql> GRANT ALL PRIVILEGES ON \. TO 'root'@'%' IDENTIFIED BY 'fa' WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;
    
    #关闭mysql服务: root用户
    /opt/mysql-5.7.29/support-files/mysql.server stop
    

配置双主互备

  1. 配置文件/etc/my.cnf

    # lsyk04配置/etc/my.cnf:
    
    [mysqld]
    basedir=/opt/mysql-5.7.29/
    datadir=/data/mysql
    port=3306
    character-set-server=utf8mb4
    log_error=/opt/mysql-5.7.29/logs/error.log
    
    # 开启mysql binlog功能
    log-bin=mysql-bin
    
    # binlog记录内容的方式
    binlog_format=mixed
    
    # 服务的唯一编号(另一个写2)
    server-id=1
    
    # 字符集编码
    character-set-server=utf8
    
    # 自增长字段从哪个数开始(另一个写2)
    auto_increment_offset=1
    
    # 自增长字段每次递增的量
    auto_increment_increment=2
    
    # 以下参数根据需要来设置
    # logs-slave-updates
    # expire_logs_days = 10 默认为0
    # max_binlog_size = 100M 默认1G
    # sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    # log_bin_trust_function_creators=0 默认为0
    
    [client]
    
    # 字符集编码
    default-character-set=utf8
    
    
    # 配置完成后,重启:
    /opt/mysql-5.7.29/support-files/mysql.server stop
    /opt/mysql-5.7.29/support-files/mysql.server start
    
    
    # lsyk05配置/etc/my.cnf:参考lsyk04,注意更改 auto_increment_offset 和 server-id
    #配置完成后,重启:
    /opt/mysql-5.7.29/support-files/mysql.server stop
    /opt/mysql-5.7.29/support-files/mysql.server start
    
    
  2. lsyk04做主,lsyk05做从配置

    lsyk04节点用root用户登录mysql,创建同步用户:

    -- 自动创建同步用户
    mysql> grant replication slave,replication client on . to 'sync'@'%' identified by 'fa';
    
    -- 查看lsyk04节点的master当前状态
    mysql> show master status;
    
    

    在这里插入图片描述

    lsyk05节点用root用户登录mysql,根据上述查到的主节点状态执行:

    mysql> change master to master_host='192.168.126.34',master_user='sync',master_password='fa',master_log_file='mysql-bin.000001',master_log_pos=462;
    mysql> start slave;
    
    -- 查看从节点的当前状态:
    mysql> show slave status\G
    

    得到如下所示则表示配置成功:

    在这里插入图片描述

  3. lsyk05做主,lsyk04做从配置:

    lsyk05节点用root用户登录mysql

    -- 自动创建同步用户:
    mysql> grant replication slave,replication client on *.* to 'sync'@'%' identified by 'fa';
    
    -- 查看lsyk05节点的master当前状态:
    mysql> show master status;
    

    在这里插入图片描述

    lsyk04节点用root用户登录mysql,根据上述查到的主节点状态执行:

    mysql> change master to master_host='192.168.126.35',master_user='sync',master_password='fa',master_log_file='mysql-bin.000001',master_log_pos=462;
    
    mysql> start slave;
    
    -- 查看从节点的当前状态:
    mysql> show slave status\G
    

    在这里插入图片描述

  4. 双主测试:

    在其中任何节点的ddl,dml,在另一台都能同步,包括创建库、表、增删改操作等

  5. 双主模式,关掉一个节点,另一个节点的slave状态就成了connecting:

    在这里插入图片描述

    启动后,slave 状态又变成正常了:Yes。

  6. 一台节点挂掉后,另一台做的变更,包括增删改数据和删除表甚至包括用户、权限的管理

    等的操作,待这台节点重新启动后,也会同步过来,当然是日志没有删除的情况下。

配置keepalive及故障恢复

​ 请见本人的博客 https://blog.csdn.net/qq_41187116/article/details/125942355?spm=1001.2014.3001.5501

*非常完美的结束!!!*

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值