功能需求
外网服务器,有独立IP;内网服务器,无独立IP;外网服务器的MYSQL数据库实时更新,并要求同步到内网服务器中。
该需求可使用MYSQL的主从备份实现,其中外网服务器为主服务器(Master),内网服务器为从服务器(Slave)。
实现方式
MYSQL主从同步是在MySQL主从复制(Master-Slave Replication
)基础上实现的,通过设置在Master
上的binlog
,使其处于打开状态;Slave
通过一个I/O
线程从Master
上读取binlog
,然后传输到Slave
的中继日志中,然后使用SQL
线程读取中继日志,并应用到自身数据库中,从而实现主从数据同步功能。
如下图所示:
具体操作
1、主服务器(Master)配置
首先应该保证从服务器对主服务器数据库的访问,即开启MySQL的远程访问,grant和flush以下就行了。
然后需要修改Master的数据库配置,MySQL默认配置文件在/etc/my.cnf
,打开后在[mysqld]
之后加入如下条目:
log_bin = /var/log/mariadb/mariadb-bin.log
server-id = 1
binlog_do_db = testmirror
也可以进行更详细的设置: