设为首页 收藏本站
查看: 1022|回复: 6

[经验分享] MySQL复制篇之---基于SSL的主从复制

[复制链接]

尚未签到

发表于 2012-12-10 09:19:12 | 显示全部楼层 |阅读模式
如果数据跨网络传输的话,那么mysql主从复制都是明文的,这在互联网中是不安全的,所以引入了ssl的主从复制机制;
环境:Red Hat Enterprise Linux Server release 5.8

主服务器:172.16.9.1                master.test.com
从服务器:172.16.9.2                slave.test.com
mysql版本:mysql-5.5.28-linux2.6-i686.tar.gz

配置前准备
ssh互信,时间同步,/etc/hosts中两个主机可以相互解析;
mysql安装过程参考http://90112526.blog./6013499/1039835

基于ssl的主从复制,需要给主从服务器颁发证书,这里给主从两端都提供证书:详情参考http://90112526.blog./6013499/1035754

在主服务器上创建CA证书:

  • vim /etc/pki/tls/openssl.conf
  • 将dir             = ../../CA
  • 更改为:dir             = /etc/pki/CA
  • ##下面国家、所在地、机构等自己设置便可。。

  • cd /etc/pki/CA
  • mkdir certs newcerts crl
  • touch index.txt
  • echo 01 > serial
  • umask 077;openssl genrsa -out private/cakey.pem 1024
  • openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
  • ###Common Name (eg, your name or your server's hostname) []:ca.test.com
  • ###Email Address []:ca@test.com

证书创建成功,接下来在主从服务器端申请证书:
  • cd /usr/local/mysql/
  • mkdir ssl
  • cd ssl/
  • umask 077;openssl genrsa -out mysql.key 1024
  • openssl req -new -key mysql.key -out mysql.csr -days 3650
  • ###Common Name (eg, your name or your server's hostname) []:master.test.com
  • ###Email Address []:master@test.com
注:从服务器端/etc/pki/tls/openssl中配置要和主服务端保持一致

从服务器端申请证书:
  • cd /usr/local/mysql/
  • mkdir ssl
  • cd ssl/
  • umask 077;openssl genrsa -out mysql.key 1024
  • openssl req -new -key mysql.key -out mysql.csr -days 3650
  • ###Common Name (eg, your name or your server's hostname) []:slave.test.com
  • ###Email Address []:slave@test.com
将该申请拷贝到主服务器:
  • scp mysql.csr master:/tmp
为主服务器颁发证书:
  • openssl ca -in mysql.csr -out mysql.crt -day N
  • cp /etc/pki/CA/cacert.pem /data/mydata/ssl/    #将CA文件按拷贝到证书所在目录
为从服务器颁发证书:

  • cd /tmp
  • openssl ca -in mysql.csr -out mysql.crt -day N
  • ##再拷贝到从服务器端,并拷贝CA证书 ##
  • scp mysql.crt  slave:/data/mydata/ssl/
  • scp /etc/pki/CA/cacert.pem slave:/data/mydata/ssl/
注:将证书和密钥文件所在目录属组、属主改为mysql

至此,证书颁发成功!!

下面配置主从服务器让其支持ssl功能:

本身是ssl功能是关闭的:
2d44c88417be299bf2a8328b4e4cee30.jpg

配置其让其开启ssl功能:
Master
  • vim /etc/my.cnf
  • server-id       = 1                 #唯一id号
  • log-bin=/binlog/mysql-bin           #二进制日志开启(目录手动创建)
  • innodb_flush_log_at_trx_commit=1    #每秒将事务刷写进磁盘一次
  • ssl                                 #启用ssl功能
  • ssl_ca=/data/mydata/ssl/cacert.pem       #CA文件所在位置
  • ssl_cert=/data/mydata/ssl/mysql.crt #证书文件位置
  • ssl_key=/usr/loca/mysql/ssl/mysql.key   #密钥文件所在位置
重启服务,查看其变量:
35fa41afb2cdd6c1387c8087abcdd75f.jpg
为从服务器复制数据建立一个用户,给其复制权限并要求密钥认证:

  • mysql> grant replication client,replication slave on *.* to 'reuser'@172.16.9.2 identified by 'reuser' require ssl;
  • mysql> flush privileges;
查看主服务器状态,并记录;
c653f9fe8578f409efc67d89b3805af4.jpg
Slave
  • vim /etc/my.cnf
  • server-id       = 5                 #唯一id号,不要和主服务器一致
  • #log-bin=mysql-bin                  #关闭二进制日志
  • relay-log=/relaylog/mysql-relay     #开启中继日志
  • relay-log-index=mysql-relay.index   #中继日志索引
  • read-only=1     #只读
  • ssl             #开启ssl功能
  • ssl_ca=/data/mydata/ssl/cacert.pem  #CA文件所在位置
  • ssl_cert=/data/mydata/ssl/mysql.crt #证书所在位置
  • ssl_key=/data/mydata/ssl/mysql.key  #密钥文件所在位置
重启服务,查看其是否开启:
36355234640932a8943930ebbac3ec23.jpg
设定该从服务器的主服务器信息:
  • mysql> change master to
  •     -> master_host='172.16.9.1',
  •     -> master_user='reuser',
  •     -> master_password='reuser',
  •     -> master_log_file='mysql-bin.000011',
  •     -> master_log_pos=534,
  •     -> master_ssl=1,
  •     -> master_ssl_ca='/etc/pki/CA/cacert.pem',
  •     -> master_ssl_cert='/data/mydata/ssl/mysql.crt',
  •     -> master_ssl_key='/data/mydata/ssl/mysql.key';
  • mysql>start slave;
查看从服务器状态信息如果出现以下内容,说明构建成功。。
  • mysql> show slave status\G;
  • *************************** 1. row ***************************
  •                Slave_IO_State: Waiting for master to send event
  •                   Master_Host: 172.16.9.1
  •                   Master_User: reuser
  •                   Master_Port: 3306
  •                 Connect_Retry: 60
  •               Master_Log_File: mysql-bin.000011
  •           Read_Master_Log_Pos: 534
  •                Relay_Log_File: relay-mysql.000001
  •                 Relay_Log_Pos: 4
  •         Relay_Master_Log_File: mysql-bin.000013
  •              Slave_IO_Running: Yes
  •             Slave_SQL_Running: Yes
  •               Replicate_Do_DB:
  •           Replicate_Ignore_DB:
  •            Replicate_Do_Table:
  •        Replicate_Ignore_Table:
  •       Replicate_Wild_Do_Table:
  •   Replicate_Wild_Ignore_Table:
  •                    Last_Errno: 0
  •                    Last_Error:
  •                  Skip_Counter: 0
  •           Exec_Master_Log_Pos: 107
  •               Relay_Log_Space: 551
  •               Until_Condition: None
  •                Until_Log_File:
  •                 Until_Log_Pos: 0
  •            Master_SSL_Allowed: Yes
  •            Master_SSL_CA_File: /data/mydata/ssl/cacert.pem
  •            Master_SSL_CA_Path:
  •               Master_SSL_Cert: /data/mydata/ssl/mysql.crt
  •             Master_SSL_Cipher:
  •                Master_SSL_Key: /data/mydata/ssl/mysql.key
  •         Seconds_Behind_Master: 0
  • Master_SSL_Verify_Server_Cert: No
  •                 Last_IO_Errno: 0
  •                 Last_IO_Error:
  •                Last_SQL_Errno: 0
  •                Last_SQL_Error:
  •   Replicate_Ignore_Server_Ids:
  •              Master_Server_Id: 1
  • 1 row in set (0.00 sec)
验证效果:
在主服务器端创建一个数据库,看从服务器是否可以同步,如果同步成功,基于ssl的主从复制到此就成功完成了!!!


求解决方法:
附:在做这个实验的时候,刚开始没有将证书mysql.crt,mysql.key,cacert.pem和数据文件放在一个目录,而是放在了mysql的安装目录/usr/local/mysql/ssl/ 下面,但是做了好几遍,总是出现如下错误,最后将那几个文件放到了mysql的数据目录/data/mydata下才解决,
如有方法解决,还请多多指点!!!


mysql>show slave status\G;
………………………………………………………………………………………………
             Slave_IO_Running: Connecting
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 641
              Relay_Log_Space: 107
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: Yes
           Master_SSL_CA_File: /usr/local/mysql/ssl/cacert.pem
           Master_SSL_CA_Path:
              Master_SSL_Cert: /usr/local/mysql/ssl/mysql.crt
            Master_SSL_Cipher:
               Master_SSL_Key: /usr/local/mysql/ssl/mysql.key
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1045
                Last_IO_Error: error connecting to master 'ibuler@172.16
               Last_SQL_Errno: 0

……………………………………………………………………………………………………



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-2786-1-1.html 上篇帖子: Mysql 主从同步问题总结 下篇帖子: mysqlab 自定义插件思路
0

尚未签到

发表于 2013-3-19 04:56:35 | 显示全部楼层
我的id是假冒的,大家不要相信我是骗子。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 14:26:39 | 显示全部楼层
这是什么东东啊

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-22 00:29:54 | 显示全部楼层
禽兽尚且有半点怜悯之心,而我一点也没有,所以我不是禽兽。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-28 10:20:57 | 显示全部楼层
男人有冲动可能是爱你,也可能是不爱,但没有冲动肯定是不爱!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-4 18:03:34 | 显示全部楼层
只有假货是真的,别的都是假的!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

发表于 2013-6-13 15:11:01 | 显示全部楼层
只有假货是真的,别的都是假的!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表