ubuntu下MYSQL主从同步配置 (虚拟机)

ubuntu下MYSQL主从同步配置 (虚拟机)

背景:mysql主从同步只背八股文的话,讲道理是记不住的,还是实操一下会比较好

前提 :先确定mysql不同环境的ip
master节点 ip:192.168.1.227
slave节点ip:192.168.1.224
至于虚拟机怎么固定ip可以查看上一篇 【virtualbox下ubuntu 22.04固定ip设置】

mysql 怎么装具体看 【阿里云 基于ubuntu 22.02环境下LNMP 环境搭建】

主从复制条件

1)主库开启Binlog功能

2)主库要建立账号

3)从库要配置master.info(CHANGE MASTER to…相当于配置密码文件和Master的相关信息)

4)start slave 开启复制功能

主库操作:

修改配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 

在文件最下面找到对应配置,打开server-id,binlog日志,并设置需要备份的数据库
在这里插入图片描述
解析:
server-id = 1 (多少是可以自定义的,保证同步的数据库之间唯一就可以了)
log_bin = /var/log/mysql/mysql-bin.log (binlog文件位置,生产环境下可能文件很多很大)
binlog_expire_logs_seconds = 86400 (binlog保存时长)
max_binlog_size = 100M (binlog文件大小)
binlog_do_db = test (需要同步的数据库)

binlog_do_db和binlog_ignore_db都被注释掉的话,则表示同步全部数据库,这里只同步test这个数据库

改完配置肯定是要重启生效。

然后通过命令行进到mysql

mysql -u root -p

在master主库中添加一个给slave同步的账号

CREATE USER 'sync'@'192.168.1.224' IDENTIFIED WITH mysql_native_password BY '123456';

赋予同步权限 192.168.1.224 是从库ip ,只能给这个ip登录

GRANT Replication Slave ON *.* TO 'sync'@'192.168.1.224';

执行sql刷新权限

flush privileges; 

查看master主库状态

show master status;

在这里插入图片描述
先保存好sql语句,后面需要在从库上面执行:
192.168.1.227 是master主库ip,master_log_file 对应File, master_log_pos 对应 Position

CHANGE MASTER TO master_host = '192.168.1.227',
master_port = 3306,
master_user = 'sync',
master_password = '123456',
master_log_file = 'mysql-bin.000003',
master_log_pos = 5915;

从库操作

修改配置文件

	sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 

在文件最下面找到对应配置,打开server-id,binlog日志,并设置需要备份的数据库

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 

server-id = 2
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index

增加上面的配置
在这里插入图片描述

然后 重启服务器
执行上面准备好的sql语句
再执行

start slave;

查看同步情况:

show slave status\G;

出现YES则表示成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在这里插入图片描述
至此,主从同步设置完成。

注:网络问题导致同步出现失败的情况下,可以在从数据库里先停止同步

stop slave;

然后在主库重新查看 show master status;
重新执行

CHANGE MASTER TO master_host = '192.168.1.227',
master_port = 3306,
master_user = 'sync',
master_password = '123456',
master_log_file = 'mysql-bin.000003',
master_log_pos = 5915;

再开启同步

start slave;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值