mysql 主从配置
札记    无    2017-07-31 16:22:01    96    0    0

数据库双向主从

Mysql 数据库本身是支持主从备份的,只需要进行特殊设计,配置成双向主从也是可以的。

首先需要正确配置两台 Mysql , 添加可以远程访问的的用户。使用 docker 配置起来会很方便,但是要注意 mysql 实例的 uuid 是要改成不同的。

主从配置示例

[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql


server-id=1
log-bin=mysql-bin
binlog-do-db=test #要同步的数据库
binlog-ignore-db=information_schema #不同步的数据库
binlog-ignore-db=db_Im
binlog-ignore-db=db_Mdr
binlog-ignore-db=db_mrs
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
slave-skip-errors=1032,1062
auto_increment_offset = 1
auto_increment_increment = 2




# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0


[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

server-id 要每台不一样,binlog-do-db 指定要同步的数据库,binlog-ignore-db 指定要忽略的数据库。

如果要配置双向同步,为了防止主键重复,主键一定要错开,可以通过全局自增间隔和偏移来实现。

主机一

auto_increment_offset = 1
auto_increment_increment = 2

主机二

auto_increment_offset = 2
auto_increment_increment = 2

连接主从

两台主机 A B 互相配置。

A 使用命令 show master status 查看 File 和 Position 。
B 使用命令

-> MASTER_USER='master_user_name', 
-> MASTER_PASSWORD='master_pass', 
-> MASTER_LOG_FILE='recorded_log_file_name', 

-> MASTER_LOG_POS=recorded_log_position; 

B 使用命令 start slave 开始同步。
B 使用命令 show slave status 查看同步状态。

如果看到 Waiting for master to send event 就说明配置成功了。 反过来再配一遍,就可以组成双向热备。

文档导航