mysql设置主从复制 以及失败从配

1.主服务器配置

在主数据库的 my.cnf 文件中加入

1.
log-bin=mysql-bin #开启二进制日志 必填
server-id=1 #设置server-id  必填
binlog-do-db=HA   #可以被从服务器复制的库。二进制需要同步的数据库名 
binlog-ignore-db=mysql  #不可以被从服务器复制的库
2.登录主数据库 后创建同步账号
CREATE USER '用户名'@'从数据库ip' IDENTIFIED BY '密码';   #创建用户
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'从数据库ip';#分配权限
flush privileges;   #刷新权限
3.SHOW MASTER STATUS; 查找主数据库master状态

image.png

2.从服务器配置

在从数据库的 my.cnf 文件中加入



1.
log-bin=mysql-bin #开启二进制日志 必填
server-id=2 #设置server-id  必填
master-host                =   x.x.x.x             # 目标主机IP
master-user                =   user                # 目标主机用户名
master-password            =   password            # 目标主机密码
master-port                =   3306                # 目标主机端口
master-connect-retry       =   60                  # 链接重连间隔(单位s)
replicate-ignore-db        =   mysql               # 不从主机同步的数据库(多个写多行)
replicate-do-db            =   db1                 # 要从主机同步的库(多个写多行)
replicate-do-db            =   db2                 # 要从主机同步的库(多个写多行)
log-slave-update   # 启用从机服务器上的slave日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)
slave-skip-errors  # 跳过错误,从机一般应该配置该项
从启数据库
2.配置从数据库到主数据的配置
CHANGE MASTER TO MASTER_HOST='主数据库ip',
        MASTER_USER='用户名',
        MASTER_PASSWORD='密码',
        MASTER_LOG_FILE='主数据库状态中的File', 
        MASTER_LOG_POS=主数据库中的position;
3.启动slave同步进程:start slave;
4.查看状态开启状态 show slave status\G; 
image.png
当 Slave_IO_Running: Yes Slave_SQL_Running: Yes时 配置成功!

3.主从服务器不一致导致失败后

1.停止主从服务器 后确保数据一致。
2.主服务器flush logs; 更新其二进制文件
show master status;
记下File, Position

在slave端,执行:
stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='文件名',MASTER_LOG_POS=位置;
start slave;
show slave status \G

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容