准备:
版本统一:mysql5.7.31
主库 操作步骤:
- 主库开启log-bin
找到主数据库的配置文件my.cnf(或者my.ini),
Centos:一般在/etc/my.cnf,
Windows:一般在C:\ProgramData\MySQL\MySQL Server 5.7\my.cnf
在[mysqld]部分检查如下两行:
#搜索log-bin,开启二进制日志,有则修改,无则新增配置,不指定路径默认保 存在Data文件下
log-bin=mysql-bin
#搜索server-id,有则修改,无则新增配置
server-id=1
- 复制Data文件备用
停止MySQL服务
Windows:一般在C:\ProgramData\MySQL\MySQL Server 5.7\Data下
Centos:一般在/var/lib/mysql下
可通过my.cnf中的datadir配置找到
复制除:auto.cnf、本机日志类文件例如:MS-20161123ANZP.err等的全部文件
启动MySQL服务
- 创建用于同步的用户账号并授权
CREATE USER 'repl'@'从库ip' IDENTIFIED BY 'GDWs-2020';#创建用户
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库ip';#分配权限
flush privileges; #刷新权限
- 查看master状态,记录
二进制文件名(例如:mysql-bin.000003)和位置(例如:73)
SHOW MASTER STATUS;
记录下file、Position的值
从库 操作步骤:
1. 配置server-id
找到从数据库的配置文件my.cnf(或者my.ini),
Centos:一般在/etc/my.cnf,
Windows:一般在C:\ProgramData\MySQL\MySQL Server 5.7\my.cnf
在[mysqld]部分检查如下配置:
#搜索server-id,有则修改,无则新增配置
server-id=1
2. 覆盖Data下文件
停止MySQL服务
Windows:一般在C:\ProgramData\MySQL\MySQL Server 5.7\Data下
Centos:一般在/var/lib/mysql下
可通过my.cnf中的datadir配置找到
除auto.cnf文件,其他全部删除
将主库复制出来的文件,粘贴进Data文件下
启动MySQL服务
3. 执行同步SQL语句
CHANGE MASTER TO
MASTER_HOST='主库ip',
MASTER_USER='rep1',
MASTER_PASSWORD='GDWs-2020',
MASTER_LOG_FILE='主库的SHOW MASTER STATUS;返回的file值',
MASTER_LOG_POS='主库的SHOW MASTER STATUS;返回的Position值';
4. 启动slave同步进程
start slave;
//停止同步进程
stop slave;
//重置同步进程
reset slave;
//查看slave状态
show slave status\G;
slave_io_running:connecting问题排查: https://blog.youkuaiyun.com/mbytes/article/details/86711508
或直接去从库Data文件夹中查阅.err文件日志报错
5. 检查数据同步是否正常