MYSQL 双机数据同步备份(主从、双Master)

环境说明

1、MySQL主服务器    IP:192.168.1.110  主机名称:MySQL Master  MySQL版本:mysql-7.5

2、MySQL从服务器    IP:192.168.1.111  主机名称:MySQL SlaveMySQL版本:mysql-7.5

+

一、主从备份(数据仅从主服务同步到备份服务器)

1、主备服务器上安装的mysql 需要授权远程访问 最好建立一个同步的单独用户synch)

主服务器Mysql同步用户 授权远程访问权限配置:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'synch'@'%' IDENTIFIED BY '12345' WITH GRANT OPTION;

#将所有数据库的所有表(*.*)的所有权限(all privileges),授予通过任何ip(%)访问的synch用户,密码为12345

mysql>flush privileges;

2、配置MySQL主服务器的my.cnf文件

#vi /etc/my.cnf

编辑配置文件,在[mysqld]部分添加下面内容

server-id=1   #设置服务器id 用于标识不同的数据库服务器

log-bin=mysql-bin  #启动mysql二进制日志系统

relay-log=relay-bin

relay-log-index=relay-bin-index

binlog-do-db=sy_test #需要同步的数据库名,如果有多个数据库,可重复此参数

binlog-ignore-db = information_schema

binlog-ignore-db = mysql

binlog-ignore-db = test  #不同步mysql系统数据库

:wq!   #保存退出

注意:windows系统修改mysql安装 根目录下my.ini文件 (5.6版本默认为my-default.ini 需要重命名为my.ini修改配置并重启mysql服务配置才能生效)

MYSQL 双机数据同步备份(主从、双Master)_第1张图片

#service mysqld  restart  #重启MySQL

#mysql -u root -p   #进入mysql控制台

mysql>show master status;  查看主服务器配置信息

3、配置MySQL从服务器的my.cnf文件

#vi /etc/my.cnf   

编辑配置文件,在[mysqld]部分添加下面内容

server-id=2   #配置文件中已经有一行server-id=1,修改其值为2,表示为从数据库

log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

replicate-do-db=sy_test   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

replicate-ignore-db=mysql   #不同步mysql系统数据库

:wq!    #保存退出

 

其他参数说明:

replicate_wild_do_table 和 replicate_wild_ignore_table

参数解决同步所有跨数据库的更新,与replicate-do-db或者replicate-ignore-db类似

auto_increment_increment和auto_increment_offset

这两个参数一般用在主主同步中,用来错开自增值,防止键值冲突

slave-skip-errors= [err1,err2,…….|ALL]

用来定义复制过程中从服务器可以自动跳过的错误号(1062,1053,1146),当复制过程中遇到定义的错误号,就可以自动跳过,直接执行后面的SQL语句,慎用,当启动这个参数,MYSQL会忽略那些错误,可能造成主从数据库的数据不同步。

master-connect-retry

这个参数是用来设置在和主服务器连接丢失的时候,重试的时间间隔,默认是60秒

log-slave-updates

这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,

同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作

4、配置 同步master配置属性

(MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可)

#service mysqld restart   #重启MySQL

#mysql  -u root -p  #进入MySQL控制台

mysql>stop slave;   #停止slave同步进程

mysql>change master to master_host='192.168.1.110',master_user='synch',master_password='12345',master_log_file='mysql-bin.000003' ,master_log_pos=413;

#执行同步语句

mysql>start slave;    #开启slave同步进程

mysql>SHOW SLAVE STATUS;   #查看slave同步信息

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上这两个参数的值为Yes,即说明配置成功!

5、在MySQL主服务器 增删改数据 查看从服务器是否都同步成功 验证MySQL主从服务器双机热备是否成功

二、双机互为备份(两个服务器数据互相同步)

1、在原主服务器 mysql 配置文件中添加同步数据配置

binlog-do-db=sy_test #需要同步的数据库名,如果有多个数据库,可重复此参数

binlog-ignore-db = mysql#不同步mysql系统数据库

replicate-do-db=sy_test   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

replicate-ignore-db=mysql   #不同步mysql系统数据库

2、在原从服务器 授权同步用户

服务器Mysql同步用户 授权远程访问权限配置:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'synch'@'%' IDENTIFIED BY '12345' WITH GRANT OPTION;

#所有数据库的所有表(*.*)的所有权限(all privileges),授予通过任何ip(%)访问的synch用户,密码为12345

mysql>flush privileges;

3、原主服务 mysql 指定需要同步的数据库地址用户等信息

mysql>stop slave;   #停止slave同步进程

mysql>change master tomaster_host='192.168.1.111',master_user='synch',master_password='12345';

#执行同步语句

mysql>start slave;    #开启slave同步进程

mysql>SHOW SLAVE STATUS;   #查看slave同步信息

你可能感兴趣的:(Mysql)