关闭

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

发表于:2013-3-07 09:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:老广    来源:51Testing软件测试网采编

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

  1. mysql> change master to  
  2.     -> master_host='172.16.1.18'
  3.     -> master_user='backup_ssl'
  4.     -> master_password='redhat'
  5.     -> master_log_file='mysql-bin.000001'
  6.     -> master_ssl=1
  7.     -> master_ssl_ca='/data/mydata/ssl/cacert.pem'
  8.     -> master_ssl_cert='/data/mydata/ssl/mysql.crt'
  9.     -> master_ssl_key='/data/mydata/ssl/mysql.key'
  10. mysql> start slave 
  11. mysql> show slave status\G; ##查看slave状态

  关注以下参数:

  1. Slave_IO_Running: Yes      ##IOthread是否运行,如果为No代表slave运行不正常 
  2. Slave_SQL_Running: Yes     ##SQLthread是否运行,如果为No代表slave运行不正常 
  3. Master_SSL_CA_File: /data/mydata/ssl/cacert.pem  ##是否启用了ssl 
  4. Master_SSL_Cert: /data/mydata/ssl/mysql.crt 
  5. Master_SSL_Key: /data/mydata/ssl/mysql.key 
  6. Master_Log_File: mysql-bin.000023                ##最后接收的主服务器的二进制 
  7. Exec_Master_Log_Pos: 1087                        ##最后执行的位置,查看master中是不是该位置 
  8. Last_IO_Errno: 0                                 ##最后一次IOthread有没有报错

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

  四、测试

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

mysql> create database testssl;

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

mysql> show databases;

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

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

  1. mysql -ubackup_ssl -predhat -h172.16.1.18 --ssl-cert=/data/mydata/ssl/mysql.crt \
  2. --ssl-key=/data/mydata/ssl/mysql.key

  查看连接状态

  1. mysql> status; 
  2. Current user:       backup_ssl@slave.laoguang.me 
  3. SSL:            Cipher in use is DHE-RSA-AES256-SHA

  由此可知连接是加密的,可以用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才得以完成,有了解的人说明一下,单证书为何不行,两个证书名称不一致也不行在原因,感谢!

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号