Heim > Datenbank > MySQL-Tutorial > Hauptteil

基于SSL实现MySQL的加密主从复制

WBOY
Freigeben: 2016-06-07 17:41:10
Original
1039 Leute haben es durchsucht

大家都知道MySQL的主从复制是明文传输的,这对一些特殊业务来说是不允许的,下面来尝试构建基于SSL的主从复制环境:RHEL5.8SELinux关闭,iptables关闭,MySQL5.5.

大家都知道MySQL的主从复制是明文传输的,这对一些特殊业务来说是不允许的,下面来尝试构建基于SSL的主从复制

环境:RHEL5.8 SELinux关闭,美国服务器,iptables关闭,MySQL 5.5.28-i686 tar包初始化安装(非编译)

规划:

  • master: 172.16.1.18  master.laoguang.me 
  • slave:  172.16.1.19  slave.laoguang.me 
  • 准备工作:hostname与规划一致,配置/etc/hosts做好解析,时间要同步,香港虚拟主机,过程不再赘述,见,mysql安装见,数据目录为/data/mydata

    一.在master上配置CA服务器,并为master,slave颁发证书

    1.1 master建立CA服务器,过程见

    1.2 master的MySQL证书申请

    1.3 slave上申请证书

    1.4 master上为slave签发

    1.5 slave上更改权限与属主

  • chown mysql:mysql mysql.* 
  • chmod 600 mysql.* 
  • 二.Master上编缉/etc/my.cnf启用ssl,并设置主从

    2.1 修改/etc/my.cnf

    2.2 启动mysql,并查看ssl信息

    2.3 为同步建立一最小权限账户,并要求ssl

    三.Slave上编缉/etc/my.cnf,启用ssl,并设置主从

    3.1 编缉/etc/my.cnf

    3.2 启用mysqld并查看ssl相关信息

    3.3 启动slave同步进程,连接主服务器

    关注以下参数:

    如果与上图累似,slave基本正常,下面测试

    四.测试

    4.1 主服务器上建立一数据库

  • 4.2 从服务器上查看有没有同步过去

  • 如果同步成功,说明没有错误

    4.3 从服务器mysql基于ssl连接主服务器,查看连接状态是否加密

  • --ssl-key=/data/mydata/ssl/mysql.key 
  • 查看连接状态

    由此可知连接是加密的,可以用tcpdump抓包测试

    到此基于SSL的mysql主从同步构建完毕,如果你的从服务器是新加的,先将主服务器最近一次的完整备份恢复到从服务器,并从同步完整备份后的二进制日志,即change master时添加master_log_op=n, n代表完整备份后的二进制位置,其它的基本一致。

     

    后记:今天尝试只给slave签发证书,master拥有有CA的证书,虚拟主机,理论上应该能成功的,不过就是连接不上,所以暂时放弃,然后尝试master的证书名字为master.crt,slave的证书为slave.crt结果也连不上,后来google,把master与slave的证书,私钥都叫mysql.crt,mysql.key才得以完成,有了解的人说明一下,单证书为何不行,两个证书名称不一致也不行在原因,感谢!

     

    本文出自 “Free Linux,Share Linux” 博客,请务必保留此出处

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage