配置: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;
记录下
File
和Position
, 配置从数据库
时会用到
从数据库配置
从数据库配置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、及库表的数据,查看 从数据库
数据也自动更新,说明配置成功。
主-主配置
所谓 主-主
配置就是 互为 主-从
, 按上述过程反向配置一遍即可.