构建MySQL主从数据库

"本文详细介绍了MySQL主从数据库的配置过程,包括主从数据库的基本概念、工作原理和配置步骤。在主数据库上,配置日志、备份数据、设置同步用户权限并锁定表。在从数据库上,配置相应参数,同步主数据库的数据并设置复制配置。最后通过`show slave statusG;`命令验证主从同步状态,确保两个yes表示成功。主从数据库的配置有助于实现数据的实时备份和高可用性。"
摘要由CSDN通过智能技术生成

一、MySQL主从数据库的介绍
MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。
MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
主从过程大致有3个步骤:
1)主将更改操作记录到binlog里
2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里中继日志
3)从根据relaylog里面的sql语句按顺序执行
二、MySQL主从数据库原理图
在这里插入图片描述
主服务器上有一个log dump线程,用来和从的I/O线程传递binlog;
从服务器上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地。
三、MySQL主从数据库的配置

IP主机名/节点
192.168.94.110localhost/主数据库节点
192.168.94.111localhost/从数据库节点

两台虚拟机均需要成功安装MySQL
3.1主数据库节点配置
基础配置

#vi /etc/my.cnf

将#log_bin前面的#去掉改为log_bin=linux

Basedir = /user/local/mysql
Datadir = /data/mysql
Port = 3306
Server_id = 110  (为你的IP地址的最后一个字段)
Socket = /tmp/mysql.sock

在这里插入图片描述
之后重启mysqld服务

#/etc/init.d/mysqld restart

在这里插入图片描述
备份数据库

#mysqldump -uroot mysql > /tmp/mysql.sql

创建一个库保存数据

#mysql -uroot -e "create database kei"

将mysql库恢复成新建的库,作为测试数据
数据库配置
进入数据库

#mysql -uroot (没有密码)

创建用作同步数据的用户并赋予权限

> grant replication slave on *.* to 'repl' @192.168.94.111 identified by '123456';
将表锁住,保持表内数据不变
> flush tables with read lock;
显示主机状态
> show master status;

在这里插入图片描述
3.2从数据库节点配置
基础配置
编辑配置文件

#vi /etc/my.cnf
Basedir = /user/local/mysql
Datadir = /data/mysql
Port = 3306
Server_id = 111  (为你的IP地址的最后一个字段)
Socket = /tmp/mysql.sock

在这里插入图片描述
重启mysqld服务

#/etc/init.d/mysqld restart

在这里插入图片描述
在主上将文件拷贝到从上,并在从上查看文件大小是否一致(本步骤在主数据库进行)

#scp /tmp/mysql.sql root@192.168.94.111:/tmp/

在这里插入图片描述
在从数据库上创建一个与主数据库一样的库

#mysql -uroot -e "create database kei"

将文件内容导入库

#mysql -uroot kei < /tmp/mysql.sql

数据库配置
进入数据库(没有密码)

#mysql -uroot
>change master to master_host='192.168.94.110',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;

在这里插入图片描述
在主数据库上执行解锁表
在这里插入图片描述
四、主从同步及相关配置参数
主从同步验证
从服务器上操作并执行命令(关闭防火墙)

> show slave status\G;
需要观察到两个yes,即可。

在这里插入图片描述
五、测试主从数据库
5.1主服务器上
在主服务器上进入数据库

# mysql -uroot 
> select count(*) from db;
> truncate table db;

(如果不能执行,则先>use mysql,之后在执行)
在这里插入图片描述
5.2从服务器上
在从服务器上进入数据库

# mysql -uroot kei
> select count(*) from db;

在这里插入图片描述
观察到该结果即搭建成功。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值