当前位置: 首页 > news >正文

MySQL主从集群

八、MySQL主从集群

原理:

两个日志:主bin-log 从relay-log

三个线程:主dump 从io、sql


作用:

  • ·实时备份:主服务器实时备份数据到从服务器,主服务器中数据丢失时,可以从从服务器中恢复数据。
  • ·读写分离:主服务器负责写操作(insert\update\delete),从服务器负责读操作(select)
  • ·高可用集群:当主服务器突然下线,从服务器可以很快地接替主服务器的功能。
  • ·负载均衡:将原本一台服务器处理的请求分发给多台服务器去处理,适用于高并发场景,防止单台服务器负载过高而崩溃。

slave_skip_error = ALL    # 跳过报错


步骤:

# 从服务器准备工作

# 配置yum源

mount /dev/cdrom /meida

cd /etc/yum.repos.d

# 关闭防火墙,沙盒

systemctl stop firewalld

systemctl

getenforce 0

set

# mysql 安装

wget 192.168.56.200/Software/mysql_install.sh

# 一键安装

bash mysql_install.sh

# 重新加载

source /etc/profile

bash

# 登录mysql

mysql -uroot -proot123

show databases;


# 开启主服务器的master的log_bin

vim /etc/my.cnf

+++++++++++++++++++++++++++++++++++++

[mysqld]

... # 省略

# 主从复制-主机配置

# 主服务器唯一ID

server-id=1

# 启用二进制日志

log-bin=mysql-bin

# 设置不要复制的数据库(可设置多个)

binlog-ignore-db=sys

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

# 设置需要复制的数据库(可设置多个)

# binlog-do-db=test

# 设置logbin格式

binlog_format=STATEMENT

+++++++++++++++++++++++++++++++++++++


#开启从服务器的realy log

vi /etc/my.cnf

+++++++++++++++++++++++++++++++++++++

[mysqld]

...

# 在之前配置下方编写

# 主从复制-从机配置

# 从服务器唯一ID

server-id=2

# 启用中继日志

relay-log=mysql-relay

+++++++++++++++++++++++++++++++++++++


# 重启两台服务器上的mysql

/etc/init.d/mysqld restart

#关闭主从数据库服务器防火墙

# 查看防火墙状态

systemctl status firewalld

# 关闭防火墙

systemctl stop firewalld

# 主数据库创建用户slave并授权

# 在主数据库端(192.168.20.30)

# 登录mysql -uroot -proot123

# 创建用户

create user 'jianwei'@'%' identified with mysql_native_password by 'root123';

# 授权

grant replication slave on *.* to 'jianwei'@'%';

# 刷新权限

flush privileges;

#从数据库端验证主数据库jianwei用户是否可用

# 在从数据库端(192.168.20.30)

# 验证主数据库jianwei用户是否可用

mysql -ujianwei 192.168.20.30 -P3306

### 配置主从节点信息 ###

# 在主数据库端(192.168.20.30)

# 查询服务ID及Master状态

# 登录

mysql -uroot -p

# 查询jianwei_id是否可配置文件中一致

show variables like 'server_id';

# 若不一致,可设置临时ID(重启失效)

set global server_id = 1;

# 查询Master状态,并记录 File(对应下一步中的master_log_file)

# Position (对应下一步中的master_log_pos)的值

show master status;

# 注意:执行完此步骤后退出主数据库

# 防止再次操作导致 File 和 Position 的值发生变化

### 在从数据库端设置同步 ###

# 在从数据库端(192.168.20.31)

# 登录

mysql -uroot -p

# 查询server_id是否可配置文件中一致

show variables like 'server_id';

# 若不一致,可设置临时ID(重启失效)

set global server_id = 2;

# 设置主数据库参数(用上一步创建的jianwei用户及密码)

change master to

master_host='192.168.20.30',

master_port=3306,

master_user='jianwei',

master_password='root123',

master_log_file='mysql-bin.000001',

master_log_pos=1864;

# 开始同步

start slave;

# 查询主从复制状态

show slave status\G;

# 查看是否配置成功

# 查看参数 jianwei_IO_Running 和 jianwei_SQL_Running 是否都为yes,则证明配置成功。若为no,则需要查看对应的 Last_IO_Error 或 Last_SQL_Error 的异常值

## 若出现错误,则停止同步,重置后再次启动

stop slave;

reset slave;

start slave;

#################################################

#!!果连接失败 !! 没有就不用这步

# 在主库执行以下命令查看当前日志信息:

show master status;

# 看信息是多少

日志文件:mysql-bin.000001

日志位置:1864

# 停止

stop slave;

# 彻底清除之前的主库配置信息

reset slave all;

# 重新设置主库连接参数

CHANGE MASTER TO

  MASTER_HOST='192.168.20.30',

  MASTER_PORT=3306,

  MASTER_USER='jianwei',

  MASTER_PASSWORD='root123',

  MASTER_LOG_FILE='mysql-bin.000001',

  MASTER_LOG_POS=1864;

# 启动从库复制并检查状态:

START SLAVE;

SHOW SLAVE STATUS\G;

 ##############################################

## 测试主从复制,主服务上执行 ##

# 在主数据库端(192.168.20.16)

mysql -uroot -p

# 创建test库,t1表,添加测试数据

create database test;

use test;

create table t1(id int,name varchar(30));

insert into t1(id,name) values(1,"aaa");

## 测试主从复制,从服务器上执行 ##

# 在从数据库端(192.168.20.30)

mysql -uroot -p

# 查看是否同步数据

show databases;

use test;

show tables;

select * from t1;

http://www.dtcms.com/a/333780.html

相关文章:

  • 软件开发过程中的维护活动
  • Effective C++ 条款42:了解 typename 的双重含义
  • 大模型幻觉涉及的违约责任探讨
  • Chrome插件开发全指南
  • K 近邻算法(KNN)及其应用解析
  • strings命令和findstr命令验证iso文件中ntkrnlmp.exe系统版本
  • 昇腾AI自学Day1-- 深度学习基础工具与数学
  • Lecture 9: Concurrency 2
  • AAAI爆款:目标检测新范式,模块化设计封神之作
  • fs模块_写入文件
  • 高可用双向存储服务GlusterFS
  • 【SpringBoot】SpringBoot 整合JDBC、Mybatis、Druid
  • PCA降维理论详解
  • Spring Boot 拦截器详解
  • 固定资产管理系统 OCR 识别功能技术解析
  • 无脑整合springboot2.7+nacos2.2.3+dubbo3.2.9实现远程调用及配置中心
  • 强制从不抱怨环境。
  • [Julia] 网络和流
  • vue2 + SimpleMindMap 制作思维导图
  • 野指针:程序崩溃的隐形杀手
  • 订单状态定时处理(Spring Task 定时任务)
  • 机械学习---词向量转化评价,附代码实例
  • 力扣(接雨水)——单调栈
  • 第454题.四数相加II
  • JavaWeb开发_Day12
  • 基于Selenium的web自动化框架
  • 电视同轴电缆全面指南:从基础到应用,批量测量一键计量
  • 第四章:大模型(LLM)】06.langchain原理-(2)langchain Chain的使用方法
  • 力扣top100(day04-03)--二分查找
  • MqSQL中的《快照读》和《当前读》