Mysql主主ssl复制_MySQL的复制(主从,主主,基于ssl)

本文详细介绍了MySQL主从复制的配置步骤,包括半同步复制、SSL传输和数据库过滤等。从检查从服务器状态开始,设置主从同步,再到处理主服务器长时间运行后新增从服务器的快速同步策略,以及启用半同步复制确保数据一致性。同时,还讲解了如何通过SSL保证传输安全,并提供了详细的配置示例和证书生成流程。
摘要由CSDN通过智能技术生成

mysql>show slave status/G查看从服务器工作状态,可以看到Slave_IO_Running: No和Slave_SQL_Running: No还是no,启用这两项

然后就算配置完成了,可以在node1中建立一个测试数据库testdb,和一个测试表t1

fae587637e033f12e8ba2e179f64b26a.png

进入node2的mysql查看

52742beb75716e309367b782c6bcf145.png

(2).如果不想让从服务器线程在mysql服务启动时自动启动,则可以在从服务器中设置skip-slave-start=1

为防止主服务器突然崩溃,可以在主服务器上设置

sync_binlog=1

innodb_flush_logs_at_trx_commit=1

(3).数据库复制过滤

主服务器

[mysqld]

binlog-do-db=magedu

在主服务器过滤:任何不涉及到数据库相关的写操作都不会被记录到二进制日志当中,所以最好不要设置,一般在从服务器中设置即可

从服务器:

replicate_do_db

rpplicate_ignore_db

replicate_do_table

replicate_ignore_table

replicate_wild_do_table

replicate_wild_ignore_table

在从服务器上只复制testdb一个数据库:

[mysqld]

replicate_do_db=testdb

replicate_do_db=mysql

(4).如果主服务器以运行很长时间,才接入一台新的从服务器,如果采取复制,会比较慢,可以采用备份的方式

node1:先对mysql服务器施加读锁

mysql>flush tables with read lock;

而后对mysql所在数据目录的逻辑卷,进行备份

lvcreate -L 50M -s -p r -n mydata-snap /dev/myvg/mydata

mysql>show master status;查看现在所在位置

2027ceb129cf6c9fe2f0618aa65d9607.png

mysql>unlocak tables(备份完成后要立即解锁)

mount /dev/myvg/mydata-snap /mnt

cd /mnt

ll

find . | cpio -o -H newc --quiet | gzip > /root/alldatabase.gz

cd

umount /mnt

scp alldatabase.gz node2:/root

mysql>use testdb

mysql>create table tb2

0dcbdebd6b47dcba6e512333afd694cf.png

node2:

gzip -d /root/alldatabase.gz

cp alldatabase /data/mydata

cd /data/mydata

cpio -id < alldatabase

rm alldatabase

然后就可以直接service mysqld start

然后进入mysql,重新设置主从

mysql>change master to master_host='172.16.133.11',master_user='repluser',master_password='redhat',master_log_file='mysql-bin.000003',master_log_pos=542;

mysql>start slave;

mysql>show slave status\G

mysql>use testdb;

mysql>show tables

备份+复制完成

(5).半同步主从复制

node1:

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

mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;

mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000;

node2:

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;

mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;

也可通过设置全局变量的方式来设置,如下:

set global rpl_semi_sync_master_enabled=1

取消加载插件

mysql> UNINSTALL PLUGIN rpl_semi_sync_master;

查看从服务器上的semi_sync是否开启:

mysql> SHOW GLOBAL STATUS LIKE 'rpl_semi%';

查看主服务器上的semi_sync是否开启,虚拟主机,注意clients 变为1 ,证明主从半同步复制连接成功:

(6).基于ssl传输的mysql主从复制

①.修改配置文件

node1:

server_id=10

log_bin=mysql-bin

sync_binlog=1事务提交后立即写入磁盘二进制文件,不再先缓存再写

node2:

read_only=1

②准备证书,私钥

Ⅰ.建立字签证服务器

node1:

vim /etc/pki/tls/openssl.cnf

dir=/etc/pki/CA

(umask 077;openssl genrsa 2048 > private/cakey.pem)

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

8236bf06e52e5388b3e1510c7c9ef124.png

mkdir certs crl newcerts

touch index.txt

echo 01 > serial

Ⅱ.为node1上的mysql准备私钥及颁发证书

mkdir /usr/local/mysql/ssl

cd 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

cp /etc/pki/CA/cacert.pem /usr/local/mysql/ssl/

Ⅲ.为node2上的mysql准备私钥及颁发证书

mkdir /usr/local/mysql/ssl

cd ssl/

(umask 077;openssl genrsa 1024 > mysql.key)

openssl req -new -key mysql.key -out mysql.csr

scp ./mysql.csr node1:/root

Ⅳ.为node2签发证书

openssl ca -in mysql.csr -out mysql.crt

scp ./mysql.crt node2:/usr/local/mysql/ssl

cd /etc/pki/CA

scp ./cacert.pem node2:/usr/local/mysql/ssl

完成后,确定node1和node2中的/usr/local/mysql/ssl目录下,有这4个文件

③.打开mysql的ssl功能

node1:

mysql>show variables like '%ssl%';

9bb11327ceef37426503caa4d77d7f39.png

其中have_openssl,have_ssl显示为disabled,表示未开启ssl

编辑主配置文件/etc/my.cnf在[mysqld]中添加

ssl

即可,重启mysql服务

mysql>show variables like '%ssl%';

19ce44629f725429e7bcc5b8be9e14a0.png

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值