zoukankan      html  css  js  c++  java
  • mysql+ssl主从复制

    一、作为主服务器Master, 会把自己的每一次改动都记录到 二进制日志 Binarylog 中。 (从服务器I/O thread会负责来读取master binary log, 然后写入自身relay log中然后在用自身的sql thread读取relay log并在自身服务器执行一遍。)
    到这里主服务器上的更改就同步到从服务器上了。

    环境:

    centos7 master  slave 
    mysql5.7  192.168.41.10 192.168.41.20



    1、实现基于 ssl 安全连接的主从复制
    1) 在主 mysql 创建 SSL/RSA 文件

    注:启用 mysql 支持 ssl 安全连接主要用于 mysql 主从复制(局域网可以非 ssh 连接即明文
    复制,但 internet 复制建议采用 ssl 连接)
    在主 mysql 上的操作完成,再生成一个复制帐号:REQUIRE SSL
    mysql>grant replication slave on . to 'rep'@'192.168.41.%' identified by '123456' require ssl;

    在master上启用二进制日志并重启mysql服务
    vim /etc/my.cnf
    添加log-bin = mysql-bin 
    systemctl restart mysqld

     

    防火墙规则3306/tcp通信
    [root@localhost bin]# firewall-cmd --permanent --add-port=3306/tcp
    success
    [root@localhost bin]# firewall-cmd --reload 
    success

    2)从服务器配置
    slave的/etc/my.cnf

    [mysqld]
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    server_id = 2
    socket = /usr/local/mysql/mysql.sock
    log-error = /usr/local/mysql/data/mysqld.error
    relay-log = /usr/local/mysql/data/relay-log-bin
    relay-log-index = /usr/local/mysql/data/slave-relay-bin.index

    注:server_id 要唯一,不能和其他 mysql 主机的重复
    在master主机把主 mysql 生成的证书给了从服务器

    cd /usr/local/mysql/data/

    scp ca.pam client-cert-pem client-key.pam root@192.168.41.20:/usr/local/mysql/data/

    设置 slave client-key.pem 的 r 权限

    chmod +r client-key.pam

    ls -l client-key.pam

    继续在从上配置 SSL:修改/etc/my.cnf 文件,添加如下内容

    ssl-ca = /usr/local/mysql/data/ca.pam

    ssl-cert = /usr/local/mysql/data/client-cert.pam

    ssl-key = /usr/local/mysql/data/client-key.pam

    重启mysqld服务
    systemctl restart mysqld
    ss -napt |grep 3306
    进入mysql查看ssl是否持久化

    那么在配置主从复制之前可以在从 mysql 上用 SSL 连接主服务器试试:

    SSL 测试连接成功,并且登入的 SSL 协议是: Cipher in use is DHE-RSA-AES256-SHA
    最后开始配置主从 replicate, 登录slave mysql
    在从上 change master to

    start slave 启动从同步进程:
    查看从的状态,以下两个值必须为 yes,代表从服务器能正常连接主服务器
    Slave_IO_Running:Yes
    Slave_SQL_Running:Yes

    测试:
    master:

    slave:

    注意:
    主从同步slave同步master,master不同步slave
    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security, TLS)
    是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过
    SSL 加密可以大大提高数据的安全性。

  • 相关阅读:
    <c:forEach>详解
    JSP基本_JSTL
    鼠标显示效果的形状设置
    linux7.3+nginx1.1+tomcat8.5 搭建负载均衡
    安装zabbix
    Centos7 systemctl使用
    Centos7 yum安装 Lnmp以及Lamp
    Centos7 LAMP环境下安装zabbix3.0
    centos 7.0 搭建LAMP环境
    mysql 配置参数详解
  • 原文地址:https://www.cnblogs.com/luck666/p/10185955.html
Copyright © 2011-2022 走看看