加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL基于SSL的半同步复制

发布时间:2016-08-06 13:19:49 所属栏目:MySql教程 来源:站长网
导读:MySQL的主从复制应用场景非常多,默认的MySQL复制是基于异步且明文传输的,也就是说,速度快,但是从服务器的数据会有着一定的滞后性,明文也就意味着数据传输
MySQL的主从复制应用场景非常多,默认的MySQL复制是基于异步且明文传输的,也就是说,速度快,但是从服务器的数据会有着一定的滞后性,明文也就意味着数据传输的不安全。因此笔者这里构建一个简单的基于加密并半同步的主从MySQL,当然由于其半同步的特性,主服务器的写操作速度必会有所降低。究竟如何选择,这取决于场景需要了。

实验环境:RHEL5.8  MySQL5.5.28

192.168.88.21       master.mos.com  master

192.168.88.22       slave.mos.com   slave

注意:笔者做了双机互信,但在此并未写出,且笔者的两个MySQL默认的root用户的密码皆为空,笔者实验环境的/etc/hosts的文件,皆如上。

一、 创建CA私有认证及所需密钥文件,在主服务器(master)上操作

1、 使用脚本创建CA内部机构,笔者将脚本放到网盘,链接如下:
http://pan.baidu.com/share/link?shareid=139821&uk=1678158691

./ casetup.sh   #输入ca的主机名和email或者两次回车即可

2、 创建Master和salve所需的密钥文件,(内部CA需要国家,省,城市,公司,部门这些信息一致)

# mkdir -pv /data/{mysql,ssl}  
# cd /data/ssl  
# (umask 077; openssl genrsa 1024 > mysql.key)  
# openssl req -new -key mysql.key -out mysql.csr  
# openssl ca -in mysql.csr -out mysql.crt -days 365  
# cp /etc/pki/CA/cacert.pem .  
# cd /data  
# cp /etc/pki/CA/cacert.pem .  
# (umask 077; openssl genrsa 1024 > slave.key)  
# openssl req -new -key slave.key -out slave.csr  
# openssl ca -in slave.csr -out slave.crt -days 365  
# ssh slave 'mkdir -pv /data/mysql' 
# scp slave.* cacert.pem slave:/data/ssl/  
# rm –rf slave.* cacert.pem

二、 载入半同步支持并提供从复制用户(位于主服务器操作)

1、 安装MySQL过程参考笔者之前的文章即可:
http://mos1989.blog.51cto.com/4226977/1039653

2、 插入谷歌提供的半同步补丁模块semisync的主模块支持,并创建复制所需用户

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

mysql> GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO sroot@192.168.88.22 IDENTIFIED BY '123' REQUIRE SSL;

mysql> FLUSH PRIVILEGES ;

mysql> q

Ps: 若需要卸载半同步模块,在mysql中执行如下语句:
mysql> UNINSTALL PLUGIN rpl_semi_sync_master;

三、 配置主服务端配置文件/etc/my.cnf

[mysqld]

ssl   #开启ssl

server-id       = 1 #主ID和从不一致即可

rpl_semi_sync_master_enabled=1 #使半同步默认开启

rpl_semi_sync_master_timeout=1000 #超过1秒则回到异步模式

sync_binlog=1 #将sql语句即时写入二进制日志

ssl_ca=/data/ssl/cacert.pem

ssl_cert=/data/ssl/mysql.crt

ssl_key=/data/ssl/mysql.key

查看本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读