mysql 主从复制实操

0. 从库mysql配置

#mysql 主从id
server-id = 10004
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin 
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin 
#主从复制遇到错误跳过
slave-skip-errors = all
#主从跳过的库
#replicate-ignore-db = xxx
#replicate-ignore-table = xxx.xxx

主库配置

server-id = 1  
#二进制文件存放路径
log-bin = mysql-bin 
#参数用于排除自带的数据库。  
binlog-ignore-db = mysql 
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
binlog-ignore-db = sys
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW 

主库添加用户

// 创建用户 db_sync未用户名可以修改 BY后面为密码,输入想要用来连接的密码,可以不是root用户的密码
CREATE USER 'db_sync'@'%' IDENTIFIED BY 'Csdn@123';
// 修改用户权限
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%';

1. 使用mysql指令导出数据

// 需要首先进入一个用于导出文件的文件夹
// window 可以在桌面建立一个文件夹mysqlData,然后使用cmd进入这个文件夹
// linux 可以创建文件夹然后进入,也可以直接使用文件路径

// 每个数据库导出一次 记住这个结尾千万不能带分号
mysqldump -uroot -p --databases db1 db2 > /usr/mysqlData/bak_mysql.sql
// 示例 windows
mysqldump -uroot -p --databases db1 db2> bak_mysql.sql
// 示例 linux
mysqldump -uroot -p --databases db1 db2> /usr/mysqlData/bak_mysql.sql

2. 然后将这个文件上传到服务器

3. 然后使用这个sql文件

// 进入mysql
mysql -uroot -p
// 使用这个sql文件
source filepath
// windows示例
source ‪C:\Users\systemUser\Desktop\project\mysqlData\bak_mysql.sql
// linux示例 之前是保存在这里的
source /usr/mysqlData\bak_mysql.sql

4. 然后配置主从复制,并且需要在mysql配置里面开启错误跳过,重启mysql,并开启主从复制START SLAVE;

#mysql 主从id
server-id = 100003
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin 
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin 
#主从复制遇到错误跳过 这个在判断主从同步完成之后注释掉然后再重新启动一次mysql!
slave-skip-errors = all
// 关闭slave
stop slave;
// 配置主从的属性
CHANGE MASTER TO MASTER_HOST = 'xxx.xxx.xxx.xxx', MASTER_USER = '前面主库创建用户名字', MASTER_PASSWORD = '主库创建的用户密码', MASTER_LOG_FILE = '主库当前的日志文件名', MASTER_LOG_POS = 主库当前的偏移位置;

// 示例
CHANGE MASTER TO MASTER_HOST = 'xxx.xxx.xxx.xxx', MASTER_USER = 'db_sync', MASTER_PASSWORD = 'Csdn@123', MASTER_LOG_FILE = '10_0_16_17-bin.000009', MASTER_LOG_POS = 668;

// 开启主从slave
start slave;

5. 等待主从复制完成。这个就使用mysql的命令查看主从数据是否变化就好了

// 进入mysql
// 查看slave状态
SHOW SLAVE STATUS;

// 判断主从复制是否开启成功的方法
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
// 这两个都为yes为成功

// 个人查看是否还有未同步的数据笨方法
Relay_Log_File: mysql-relay-bin.000014
Relay_Log_Pos: 866        
Exec_Master_Log_Pos: 2854
// 看这三个数据是否再变化,在的话就说明还有未同步的数据

// 开启主从复制
start slave;
// 停止主从复制
stop slave;

6. 注释掉主从复制错误配置,重启mysql

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值