因为实际的业务需求最近就需要部署一些MySQL服务器,而在部署mysql服务器中在做主从同步时用的都是MySQL Replication的主从同步的方法,当然实现mysql主从同步的方法还有很多,这里就只说使用MySQL Replication的主从同步的功能,在实现mysql的主从同步的常用的2种配置方式,当然可以根据实际的生产环境选择不同的方式,在这里就简单的把2种配置方法配置my.cnf说一下,因为以前有写过mysql的主从同步方法,这里就不再赘述了,需要可以参看:,这里为方便就用以上为例子
一、指定某个或者多个的库复制
这种方式主从同步多用于master中部分库或表需要复制,剩下的不复制,这种方式优点是在master中只要复制想要复制的库或表,其他的库表不会被复制,缺点也很明显就是如果要在master添加新的库需要被复制的时候mysql服务需要修改my.cnf重启mysqld服务,在my.cnf配置如下:
#在master中的“[mysqld]”下添加
server-id = 1#一般master都是用1,当然如果是其他架构就不一定
sync_binlog = 1
log-bin=mysql-bin
relay-log = mysql-relay-bin#这个是同步的关键
#在slave中的“[mysqld]”下添加
server-id = 2
read_only = 1
report-host=192.168.168.253#主库的ip
relay-log = mysql-relay-bin
replicate-wild-do-table=database.%#需要同步主库里的某一个库,多个库可自行添加
skip-slave-start#这个加上避免在slave复制进程启动mysqld时而启动
二、排除mysql的权限库等,其余的全部复制
这种方式的优缺点和上一种相反,那么在master中create新的库被同步时不需要重启mysqld服务,在my.cnf配置如下:
#在master中的“[mysqld]”下添加
server-id = 1
sync_binlog = 1
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
#当然如果默认的test库没有drop也要加上
#在slave中的“[mysqld]”下添加
server-id = 2
read_only = 1
report-host=192.168.168.253#主库的ip
relay-log = mysql-relay-bin
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
skip-slave-start
这样MySQL Replication的主从同步的常用方法的配置my.cnf文件就结束了