虚拟机实现mysql主从同步简单介绍

一、从服务器主动同步主服务器

首先定义两台服务器
主服务器:192.168.203.33
从服务器:192.168.203.44

1 、主从服务器都安装服务 - 开启服务

yum -y install mysql mysql-server
service mysqld start
mysqladmin -uroot password 123

2 、修改配置文件:vim /etc/my.cnf

主、从都需添加

log-bin=mysql-bin 开起二进制日志文件
server-id=xx 申明本台 mysql 服务器 ID

主服务器:

在这里插入图片描述
从服务器:
在这里插入图片描述
修改了配置文件,一定重新启动:

service mysqld restart

3 、进入数据库(主服务器 33)

创建从服务器授权用户:

grant replication slave on *.* to ' 用户 '@'%' identified by ' 密码 ';
命令:grant all on *.* to 'cong44'@'%' identified by '123';
show master status; 查看二进制文件名,以及大小

在这里插入图片描述

4 、进入数据库(从服务器 44)

登录

msyql:mysql -uroot -p

语 法 :

change master to master_host=’ 主 服 务 器 IP’,master_user=’ 用 户’,master_password=’ 密码 ‘,master_log_file=’ 二进制文件’,master_log_pos= 文件空间大小 ;

命令:

change master to master_host='192.168.203.33',master_user='cong44',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=246;

5 、确定从主服务器同步

show slave status\G; 查看同步服务开启状态
start slave; 如果同步状态没有启动,则开启
Slave_IO_Running: Yes 如果失败,是授权失败了,重新授权
Slave_SQL_Running: Yes 如果失败,是因为二进制文件不一致导致的,重新查看一下主服
务器的二进制文件大小,再授权一次就可以了,授权的时候,关闭同步服务:stop slave;

在这里插入图片描述

6 、进入数据库(主服务器 33)

创建数据库:create database yunjisuan;
选择数据库:use yunjisuan;
创建表:create table student ( id int primary key auto_increment, name varchar(10) );
插入数据:insert into student values (null,‘qiang’);

在这里插入图片描述再进入从服务器 mysql 服务 44:
就可以看到有另一个数据库 yunjisuan,并存在一张表,student,查询显示了,主服务器
中插入的数据,表示主从服务器,设置成功

在这里插入图片描述

二、同步主库已有数据到从库

1、停止主库的数据更新操作

flush tables with read lock;
在这里插入图片描述

2、新开终端,生成主数据库的备份(导出数据库)

mysqldump -uroot -p test > test.sql
输入密码
在这里插入图片描述

3、在从库将备份将从主库拷贝过来

scp root@20.20.24.10:/root/test.sql /root/

在这里插入图片描述
在这里插入图片描述

4、主库解锁

unlock tables;

在这里插入图片描述

5、停止从库slave

stop slave;

在这里插入图片描述

6、新建数据库test

create database test default charset utf8;

7、导入数据

mysql -u root -p 123456 test > test.sql

8、查看从库已有该数据库和数据

show databases;

在两个虚拟机上搭建一主一从的 MySQL 主从服务器并实现主从复制和读写分离,可按以下步骤进行: ### 主从复制搭建 #### 主从节点准备 确保两台虚拟机已安装 MySQL 数据库,并且网络可以互相访问。 #### 主节点配置 - **创建 log - bin 二进制日志存储路径**:创建用于存储二进制日志的路径,方便后续管理和维护。 - **修改 my.cnf 配置文件**:对主节点的配置文件进行修改,开启二进制日志记录功能,这是主从复制的基础,通过记录数据库的更改操作来实现数据同步。 - **重启 mysql 服务,检查是否生效**:重启 MySQL 服务使配置生效,并检查配置是否正确应用。 - **主节点创建主从复制账号**:创建专门用于主从复制的账号,为从节点提供访问主节点的权限。 - **查看主节点的二进制日志的名称**:获取当前主节点正在使用的二进制日志文件名称,这是从节点连接主节点时需要的重要信息。 #### 从节点配置 - **修改 my.cnf 配置文件**:对从节点的配置文件进行修改,配置从节点的相关参数,使其能够与主节点进行通信和同步。 - **在从节点配置需要复制的主机**:指定从节点要复制的主节点信息,包括主节点的 IP 地址、端口号、复制账号等。 - **在从节点开启 slave 同步,查看同步状态**:启动从节点的同步功能,并检查同步状态是否正常。 #### 主节点创建数据库测试 在主节点创建数据库和表,用于测试主从复制功能。 #### 从节点查看同步数据 - **数据测试 - 主节点插入数据,从节点查看**:在主节点插入数据,然后在从节点查看是否成功同步。 - **数据测试 - 主节点删除数据,从节点查看**:在主节点删除数据,检查从节点是否也相应地删除了数据。 #### 主从同步关闭和开启 可以根据需要关闭或开启主从同步功能。 ### 读写分离搭建 在完成主从复制搭建的基础上进行读写分离。这里以 Amoeba 服务器为例: #### 初始化操作 ```bash [root@l4 ~]# systemctl disable --now firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@l4 ~]# setenforce 0 [root@l4 ~]# vim /etc/selinux/config ``` 通过上述操作关闭防火墙和 SELinux,避免对 Amoeba 服务器的网络通信造成影响。 ### 验证 在主服务器 master 写入数据进行验证: ```sql mysql> CREATE TABLE sre.t1(id INT,name CHAR(10)); mysql> INSERT INTO sre.t1 VALUES(1,"Sam"); mysql> INSERT INTO sre.t1 VALUES(2,"Jack"); ``` 通过在主节点插入数据,检查从节点是否能正确同步,以及读写分离是否正常工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值