mysql备机读取数据_Mysql(物理机或者docker) 实现主备机实时备份数据

www.syncnavigator.cn

SyncNavigator 做数据同步时所支持的数据库类型:

支持sqlserver 2000-2014所有版本,全兼容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。

来源数据库和目标数据库可以版本不同,比如:来源数据库是sqlserver 2012  目标数据库是mysql 5.5 ,都是可以的, SyncNavigator 支持跨数据库版本,无缝传输数据。

只需要能连接上数据库, SyncNavigator 可以安装在第三方电脑上,来源数据库和目标数据库电脑上可以不用安装程序。

设置好数据库连接地址,点击测试连接,能脸上来源数据库和目标数据库, SyncNavigator 就能进行高效数据传输服务

---------------------

前言:

一、前言

Mysql Replication作为读写分离的廉价解决方案,支持一主多备的方式进行数据存储,采用二进制日志传送,目前存在着广泛应用,网上相关概念也比较多,不再重复介绍。引用一张官方提供的Replication应用场景图片(http://dev.mysql.com/doc/refman/5.1/en/replication-solutions.html)。本文主要记录了基于Linux环境下的Mysql Replication配置步骤。

6b5a83c2471ade1d6147904f7df933b9.png

二、环境准备

IP_PORT

OS

Mysql

Master

10.129.221.14:3306

CentOS 6.5

5.1.73

Slave

10.129.221.16:3306

CentOS 6.5

5.1.73

Slave

...

三、在Master和Slave上分别开启root用户远程访问,并设置root用户密码,默认为空

mysql> use mysql;

mysql> update user set host = '%' where host ='127.0.0.1' and user = 'root';

mysql> update user set password = PASSWORD('glf_123') where user = 'root';

mysql> flush privileges;

四、在Master数据库上创建一个repl用户并进行授权,用于slave机器访问master数据库

mysql> create user 'repl'@'%' identified by 'glf_123';

mysql> grant replication slave on *.* to 'repl'@'%' identified by 'glf_123';

mysql> flush privileges;

修改后的user表数据如下:

6c41c27837ab77a25874b896761c1a90.png

五、在Master服务器上创建一个TestDB数据库,用于Replication

六、修改Master数据库的数据库配置(/etc/my.cnf),开启数据库二进制日志记录

30a070b887761b19085305b3faca4a2c.gif

[mysqld]

server-id=1 # 唯一ID

log-bin=mysql-bin # 指定日志文件

binlog-do-db=TestDB # 需要同步的数据库

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

30a070b887761b19085305b3faca4a2c.gif

七、重启Master数据库

[root@VM-CentOS /]# service mysqld restar

八、检查Master库的Master状态

mysql> SHOW MASTER STATUS;

显示结果如下:

6fe8eea876111e5d9664dcdd50d96d77.png

九、修改Slave数据库配置(/etc/my.cnf)

30a070b887761b19085305b3faca4a2c.gif

[mysqld]

server-id=2 # 唯一ID

read_only=1 # 设置Slave库只读

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

30a070b887761b19085305b3faca4a2c.gif

十、重启Slave数据库

[root@VM-CentOS /]# service mysqld restart

十一、设置slave节点replication指向master,在Slave库执行change master command

30a070b887761b19085305b3faca4a2c.gif

change master to

master_host='10.129.221.14',

master_user='repl',

master_password='glf_123',

master_port=3306,

master_log_file='mysql-bin.000001',

master_log_pos=0,

master_connect_retry=10;

30a070b887761b19085305b3faca4a2c.gif

master_log_file表示Master数据库中的log文件名,通过SHOW MASTER STATUS查询;

master_log_pos 表示需要同步的二进制偏移量 ,0表示全部重新同步;

第八步中SHOW MASTER STATUS查询显示的是当前Position;

十二、在Salve服务器启用slave模式

mysql> start slave;

十三、查看replication的执行情况、以及相关处理Process

mysql> SHOW SLAVE STATUS \G;

mysql> show processlist \G;

2f9f349b3b7044d4fc29cd51eb4e3078.png

十四、至此MySQL Replication 相关的配置完成,在Master库的任何修改都会通过事务日志提交到Slave。

附上自己docker修改my.cnf配置文件的命令:

docker run --name db01 -d -e MYSQL_ROOT_PASSWORD='passwd' -e MYSQL_REPLICATION_USER=replication_user -e MYSQL_REPLICATION_PASSWORD='passwd' -p 3307:3306 mysql:latest --server-id=1 --log-bin=mysql-bin --binlog-do-db=TestDB

docker run --name db02 -d -e MYSQL_ROOT_PASSWORD='passwd' -e MYSQL_REPLICATION_USER=replication_user -e MYSQL_REPLICATION_PASSWORD='passwd' -p 3308:3306 mysql:latest --server-id=2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值