1、复制的基本原理

在这里插入图片描述

2、复制的基本原则

每个slave只有一个master
每个slave只能有一个唯一的服务器ID
每个master可以有多个slave

3、复制的最大问题

数据同步到从机延时

4、配置

mysql版本要求一致且后台以服务运行
主从都配置在[mysqld]结点下,都是小写

0、准备

1、修改server_uuid为随机数,注意主从机的uuid不能重复

修改:

// 查看地址
show variables like 'datadir'

修改这个地址下的auto.cnf文件。

2、主从机的mysql都无数据插入,可以先把在用的数据库密码改一下

配置完重启mysql

1、主机配置

主机修改my.cnf配置文件

# 主从复制配置如下

#主服务器唯一Id[必填]
server-id=1
#启用二进制日志[必填]
log-bin=自己mysql的路径/mysqlbin 
#主机,读写都可以
read-only=0
#设置不要复制的数据库[可选]
#binlog-ignore-db=mysql
#设置需要复制的数据库[可选](输数据库名字) 
binlog-do-db=test

2、从机配置

从机修改my.cnf配置文件

#主从复制配置
#从服务器唯一Id
server-id=2
#启用二进制日志
log-bin=自己mysql的路径/mysqlbin 
#只读,对拥有super权限的账号是不生效的
read_only = 1

配置完都重启mysql服务

3、建立账户并授权
1、在主机上建立账户并授权slave
创建用户
CREATE USER 'zhangsan'@'%' IDENTIFIED BY '123456';
授权slave
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan' @ '192.168.14.167【从机数据库IP】' IDENTIFIED BY '123456';
更新权限
flush privileges;

查询master的状态
show master status
在这里插入图片描述

2、从机上配置需要复制的主机
CHANGE MASTER TO MASTER_HOST='ip地址', MASTER_PORT=3306, MASTER_USER='zhangsan', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysqlbin.000001', MASTER_LOG_POS=154;

3、启动从服务器复制功能
start slave;

show slave status\G【\G是为了以键值的形式显示,好看一些】
下面两个参数都是Yes,则说明主从配置成功!
在这里插入图片描述

如果Slave_IO_running 为Connecting ,检查端口port 或 账号密码

如果有错误,就看错误日志,如下:
在这里插入图片描述

测试
在主机上新建个user表
在这里插入图片描述
此时从机上也新增了个user表
在这里插入图片描述说明复制成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐