mysql 数据库单向同步_MySQL单向主从同步实践

一、背景目的

在生产环境有个mysql数据库,体验有限,开发的时候经常会出现由于数据错误导致的程序问题,而且日志经常写的也不清不楚,但是直接连接生产数据库风险太大,所以我就想把生产环境的数据同步到本地环境过来,然后在本地进行调试

首先百度了一大篇,反正很多,大部分都有些过时了,实践起来不怎么成功,我照着做成功的文章地址:https://blog.csdn.net/qq_26819733/article/details/59557712,而且这篇文章把原理也说的很清楚了

二、操作

Master数据库配置

1)、Master数据库配置

第一步肯定是创建同步数据所要使用的数据库账户了和分配权限了,slave的ip是因为我只想用这个账户在从数据库服务器上登录,其他地方就不允许登录

CREATE USER '{用户名}'@'{slave的IP地址}' IDENTIFIED BY '{密码}';

分配权限

grant replication slave on *.* to '{上一步创建的用户}'@'{slave的ip地址}' identified by '{密码}';

2)、数据库配置文件配置(xxx.cnf配置文件)

#设置服务器id,为1表示主服务器,

server-id=1 #设置服务器id,为1表示主服务器,

log_bin=mysql-bin #启动MySQ二进制日志系统

binlog_format=mixed

binlog_do_db=lotteryticket #需要同步的数据库名,如果有多个数据库,可重复此参数,

binlog_ignore_db=mysql #不同步mysql系统数据库

binlog_ignore_db=information_schema #不同步information_schema系统数据库

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

都有注释应该不用在详细说明

这里说一下我遇到的坑,其实主从配置的关键内容只有server-id、log_bin、binlog_format、binlog_do_db、binlog_ignore_db这些配置。我之所以把下面的也贴出来,是因为我开始的时候把主从的配置写到了[mysql]这些下面,

数据库启动没什么问题,但是在用命令登录的时候会报错。unknown variable server-id,最终换个位置就行了

3)、配置完以后重启一下,OK,主数据库配置就完成了

登录上Master数据,使用show master status;查看状态

9c6e0882eff231837dc3a43f52f20cb4.png

记住那个file有用,否则会不成功

Slave数据库配置

1)、数据库配置文件(xxx.cnf配置文件)

跟Master的配置差不多,主要就是server-id不能写成1就行了

#设置服务器id,为1表示主服务器,

server_id=2

log_bin=mysql-bin

binlog_format=mixed

replicate_do_db=lotteryticket

replicate_ignore_db=mysql

replicate_ignore_db=information_schema

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

2)、登录上slave数据库进行配置

mysql> stop slave;

mysql> change master to master_host='xx.xx.xx.xx', master_user='root',master_password='123456',

master_log_file='mysql-bin.000001',

master_log_pos=154;(保证是最新的position)

mysql> start slave;

注意这里的master_log_file需要配置上面查看状态得到的file名字,否则启动的时候Slave_IO_Running参数会是No导致同步不成功

3)、show slave status;查看从数据库状态,看到Slave_IO_Running为YES和Slave_SQL_Running也是YES说明就成功了。很奈斯

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值