配置:mysql [主-从]&[主-主]

2019-03-28  本文已影响0人  坚持到底v2

主数据库配置

主数据库配置备份用户

主数据库 上配置 备份用户

grant replication slave on *.* to '{yourbackupuser}'@'{your_slave_host}' identified by '{yourpwd}';

主数据库配置my.cnf

[mysqld]
server-id= 1
log-bin=mysql-bin #启用日志文件
binlog-do-db= test #需要同步的数据库
binlog-ignore-db= mysql #不需要同步的数据库

log-slave-updates
sync_binlog= 1

auto_increment_offset= 1
auto_increment_increment= 2

replicate-do-db= test
replicate-ignore-db= mysql,information_schema

然后重启 mysql , 然后进入 mysql命令行 执行如下命令:

flush tables with read lock; 锁表以便在同步之前写数据进去。
show master status\G

***************************1. row ***************************

File: mysql-bin.000003
Position: 107
Binlog_Do_DB: test
Binlog_Ignore_DB:mysql

这里使用了 锁表 , 目的是为了先不写入新的数据, 好让 从数据库 定位同步位置, 初次同步完成后, 记得解锁 unlock tables;

记录下 FilePosition , 配置 从数据库 时会用到


从数据库配置

从数据库配置my.cnf

[mysqld]
server-id= 2
log-bin=mysql-bin #启用日志文件
binlog-do-db= test #需要同步的数据库
binlog-ignore-db= mysql #不需要同步的数据库

log-slave-updates
sync_binlog= 1

auto_increment_offset= 1
auto_increment_increment= 2

replicate-do-db= test
replicate-ignore-db= mysql,information_schema

然后重启 mysql , 然后进入 mysql命令行 执行如下命令:

stop slave;  #停止slave
reset slave;
# 如果是从头开始同步
change master to master_host='{your_master_host}',master_port={your_master_port},master_user='{yourbackupuser}',master_password='{yourpwd}';

# 如果是从指定位置开始同步
change master to master_host='{your_master_host}',master_port={your_master_port},master_user='{yourbackupuser}',master_password='{yourpwd}' master_log_file='{master_file}',master_log_pos={master_position};

start slave;

# 查看slave 状态
show slave status\G;

# 查看这两项是否为YES,yes为正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

验证

配置完成后, 在 主数据库 中创建database、table、及库表的数据,查看 从数据库 数据也自动更新,说明配置成功。


主-主配置

所谓 主-主 配置就是 互为 主-从 , 按上述过程反向配置一遍即可.

上一篇下一篇

猜你喜欢

热点阅读