MySQL基于SSL的半同步复制
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内部机构,笔者将脚本放到网盘,链接如下: ./ 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过程参考笔者之前的文章即可: 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中执行如下语句: 三、 配置主服务端配置文件/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/ (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |