ssl加密复制实现
ssl加密复制是生产环境中对数据安全性的一个保障,配置过程也比较简单,之前在前面的文章中都有对ssl加密实现有详细介绍这里就不再过多赘述了
准备私有CA
# mkdir ca
# cd ca
# (umask 077;openssl genrsa 2048 >ca-key.pem)
# openssl req -new -x509 -nodes -days 3665-key ca-key.pem -out ca-cert.pem
为master服务器生成证书
# openssl req -newkey rsa:2048 -days 3665-nodes -keyout master-key.pem -out master-req.pem
# openssl rsa -in master-key.pem -out master-key.pem
# openssl x509 -req -in master-req.pem-days 3665 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -outmaster-cert.pem
更改属主属组
# chown mysql.mysql -R *
# chmod 600 *
为从服务器生成证书
# openssl req -newkey rsa:2048 -days 3665-nodes -keyout slave-key.pem -out slave-req.pem
# openssl x509 -req -in slave-req.pem -days3665 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out slave-cert.pem
将CA证书、签署的slave端证书、master证书及私钥传送到slave服务器上
# scp ca-cert.pem slave-key.pemslave-cert.pem master-cert.pem master-key.pem 172.16.51.21:/ssl/
更改证书属主属组
# cd /ssl
# chown mysql.mysql -R *
# chmod 600 *
编辑master服务器my.cnf配置文件
# vim /usr/local/mysql/my.cnf ---添加内容如下
ssl
ssl-ca = /ca/ca-cert.pem
ssl-cert = /ca/master-cert.pem
ssl-key = /ca/master-key.pem
编辑slave服务器my.cnf配置文件
# vim /usr/local/mysql/my.cnf ---添加内容如下
ssl
ssl-ca = /ssl/ca-cert.pem
ssl-cert = /ssl/slave-cert.pem
ssl-key = /ssl/slave-key.pem
重启mysql服务器查看ssl功能是否启用
在master服务器查看SSl功能开启状态
mysql> show variables like '%ssl%';
在slave服务器查看SSl功能开启状态
mysql> show variables like '%ssl%';
SSL加密复制验证实现
Master服务器授权
mysql> GRANT FILE,SELECT,REPLICATION SLAVEON*.* TO 'test11'@'%' IDENTIFIED BY 'test11' REQUIRE SSL;
mysql> FLUSH PRIVILEGES;
Slave服务器连接
# mysql -utest11 -ptest11 -h172.16.51.20--ssl-cert=/ssl/master-cert.pem --ssl-key=/ssl/master-key.pem
查看状态信息
mysql> status;
ssl加密复制相关配置就完成了,具体的实现与GTID主从复制验证相同
Mysql5.6半同步配置
在主服务器上安装插件
mysql> INSTALL PLUGINrpl_semi_sync_master SONAME 'semisync_master.so';
修改my.cnf配置文件—添加一下选项
rpl_semi_sync_master_enabled=ON
在从服务器上安装的插件
slave> INSTALL PLUGINrpl_semi_sync_slave SONAME 'semisync_slave.so';
修改从服务器配置文件添加一下选项
rpl_semi_sync_slave_enabled=ON
重新启动mysql服务器
验证半同步功能是否开启
mysql> CREATE DATABASE magedudb3;
mysql> SHOW GLOBAL STATUS LIKE 'rpl%';