mysql主从复制

本文详细介绍了MySQL主从复制的配置过程,包括在主服务器上创建用户、更改配置文件、获取二进制日志信息,以及在从服务器上配置、启动从服务和检查复制状态。关键步骤包括设置log-bin、server-id,创建复制用户,配置从服务器的同步参数,并确保所有参数正常。

目的

偶尔要给客户配置主从复制,每次都要从网上查资料,太麻烦,就自己搬运一个备用一下,原理啥的就不说了,直接上步骤:
1.在主服务器上,必须开启二进制日志机制和配置一个独立的ID

2.在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号

3.在开始复制进程前,在主服务器上记录二进制文件的位置信息

4.如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)

5.配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置

一、主服务配置

1、创建用户

CREATE USER ‘shunda’@‘172.18.1.%’ IDENTIFIED WITH mysql_native_password BY ‘p@ssw0rd’;
grant replication client,replication slave on . to ‘shunda’@‘172.18.1.%’;
FLUSH PRIVILEGES;

2、更改配置文件

首先检查你的主服务器上的my.cnf文件中是否已经在[mysqld]模块下配置了log-bin和server-id
[mysqld]
log-bin=mysql-bin
server-id=1
我这里用的是宝塔安装的mysql

#选择增加的参数

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

binlog-ignore-db = 数据库名 #不需要同步的数据库

注意,如果需要同步多个库,需要把 binlog-do-db= 数据库名 写成多条

3、获取二进制日志的信息并导出数据库

登录mysql后执行:
show master status;
在这里插入图片描述
File的值是当前使用的二进制日志的文件名,Position是该日志里面的位置信息(不需要纠结这个究竟代表什么),记住这两个值,会在下面配置从服务器时用到。

另外,在实际过程中,同步数据之前,要点当前数据库导出一下,所以在导出之前,刷新所有的表,同时给数据库加上一把锁,阻止对数据库进行任何的写操作,命令如下:
flush tables with read lock;

执行完了数据导出,解锁
unlock tables;

二、配置从服务器

1、先改配置:

server-id=2

忽略表

replicate-wild-ignore-table=mysql.*
replicate-wild-ignore-table=sys.*

如果有多个从服务器上,那么每个服务器上配置的server-id都必须不一致。从服务器上没必要配置log-bin,当然也可以配置log-bin选项,因为可以在从服务器上进行数据备份和灾难恢复,或者某一天让这个从服务器变成一个主服务器

2、配置同步参数

登陆mysql,输入如下信息:

CHANGE MASTER TO MASTER_HOST=‘172.18.1.102’, MASTER_USER=‘shunda’, MASTER_PASSWORD=‘p@ssw0rd’, MASTER_LOG_FILE=‘mysql-bin.000007’,MASTER_LOG_POS=156;
图片是在别人在别人博客上粘贴的,请博主莫怪

3、启动从服务

start slave;

4、检查状态

show slave status \G
图片是在别人在别人博客上粘贴的,请博主莫怪
这个地方很重要,一定要两个参数都是yes才可以

至此,主从配置完成,插入条试试应该可以了

参考博文:
https://blog.youkuaiyun.com/agonie201218/article/details/121499881

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值