mysql 设置从服务器

本文详细介绍了如何配置MySQL的主从复制,包括设置从服务器的server-id,创建复制用户,备份主服务器数据,恢复到从服务器,获取主服务器复制坐标,以及启动从服务器的复制进程。整个过程确保了数据一致性并提供了故障切换的能力。
摘要由CSDN通过智能技术生成

MySQL 从服务器复制的原理就是从主服务器读取binlog, 在从服务器回放来同步主服务器进度的过程。从服务器采用两个线程来完成同步过程: I/O 线程完成读取主服务器binlog 到写入从服务器中继文件的工作。SQL 线程从中继文件读取事件,并在从数据库执行。

主从服务器设置的前提是,主从服务器都开启了 binlog。

我这里主服务器的内网ip是: 192.168.182.119, 从服务器的内网ip 是 192.168.182.120。(确保两个ip 可以相互ping通)

1、设置从服务器的 sever-id。vim my.cnf :
设置从服务器的server-id 为一个1至1的32次幂-1之间的整数,且不同于其他主从服务器的server-id.
在这里插入图片描述

2、在主服务器上为从服务器的复制设置一个账户用户复制操作。

#slave_user 是从服务器连接主服务器的用户, slave_pass 是连接密码,根据需要进行修改。
create user 'slave_user'@'192.168.182.120' identified by 'slave_pass';
grant replication slave on *.* to 'slave_user'@'192.168.182.120';

3、备份主服务器的数据,如果你需要备份的数据表有不支持事务的表,则需要停服,来保证数据备份数据的一致性。如果所有的表都是事务引擎,则可以参考如下备份脚本:

# --single-transaction 会让事务引擎的表数据在一个事务内完成,确保了备份数据的一致性。--master-data=1 让从服务器复制的位置正好和备份时刻对接上,详见: https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_master-data
mysqldump --single-transaction --master-data=1 shop>shop.sql

4、在从服务器使用上面备份的文件制作一个数据库副本。

create database shop;

mysql -uroot -p shop<shop.sql

5、查看主服务器的当前坐标

flush tables;
show master status;

在这里插入图片描述
6、在从服务器连接主服务器并设置初始复制坐标:

change master to master_host='192.168.182.119',master_user='slave_user',master_password='slave_pass',master_log_file='mysql-bin.000008',master_log_pos=2033;

7、开始复制

start slave;

# 查看 slave 的复制状态
show slave status;

# 停止复制, 在从服务器备份时,这个操作会很有用
stop slave

接来下,在主服务器做一些修改测试下同步情况。(略)

参考: 《MySQL 技术内幕 5th》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡德咏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值