Mysql的高可用方案及主从详细配置

6种MySQL高可用方案对比分析 MySQL InnoDB Cluster是一个强大且灵活的高可用性解决方案,适合高可用性、高一致性和高并发的业务场景。通过简单的配置和管理,企业可以快速部署一个高效且可靠的数据库集群,确保业务连续性和数据安全。Percona XtraDB Cluster是一个强大且灵活的高可用性解决方案,适合高可用性、高一致性和高并发的业务场景。通过简单的配置和管理,企业可以快速部署一个高效且可靠的数据库集群,确保业务连续性和数据安全。 阅读详情

1、常用的高可用MySQL解决方案:

数据库作为最基础的数据存储服务之一,在存储系统中有着非常重要的地位,因此要求其具备高可用性无可厚非。能实现不同SLA(服务水平协定)的解决方案有很多种,这些方案可以保证数据 库服务器在硬件或软件出现故障时服务继续可用。

高可用需要解决的主要问题有两个,一是如何实现数据共享或同步数据,另一个是如何处理failover。数据共享一般的解决方案是通过SAN(Storage Area Network)来实现,而数据同步可以通过rsync软件或DRBD技术来实现。failover的意思是指当服务器死机或出现错误时可以自动切换到其他备用服务器,不影响服务器上业务系统的运行。


常用的解决方案有:主从复制、MMM高可用、Heartbeat/SAN、Heartbeat/DRBD,还有MySQL Clustter高可用解决方案。下面将重点介绍主从复制高可用解决方案。

下面配置文章内容基本上来自于:http://www.cnblogs.com/zhoujie/p/mysql1.html

仅对运行过程出现错误的地方进行局部的修改,已标注出。


Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。

首先确保主从服务器上的Mysql版本相同。

 

一、安装部署mysql

1、 安装服务器端:yum install mysql-server

         yum install mysql-devel

  安装客户端:   yum install mysql

2、启动服务

service mysqld start

3、安装完后执行下面命令进行初始化配置,会要求设置密码:

/usr/bin/mysql_secure_installation

4、设置允许远程连接到该mysql服务器

登陆到mysql: mysql -uroot -ptest123

复制代码
[root@zhoujietest ~]# mysql -uroot -ptest123  #账号root,密码test123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.5.35-log MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
复制代码

这时比如通过navicat连接是是失败的。需要设置下mysql库下面的user表:

复制代码
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cmdb               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> use mysql;
Database changed
mysql> update user set host='%' where user='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql> 
复制代码

虽然提示更新失败,但实际上是更新成功的。设置允许任意主机连接。

若是进入mysql报这个错:Access denied for user (using password: YES)

则如下解决:

1)、关闭mysql

  service mysqld stop

2)、屏蔽权限

mysqld_safe --skip-grant-table

3)、另起一个终端执行如下:

复制代码
[root@zhoujietest ~]#mysql -u root

mysql>delete from user where user='';

mysql>flush privileges; #这个一定要执行,否则关闭之前的终端错误会重现

mysql>\q
复制代码

 

二、配置mysql主从同步

准备两台测试的虚拟机,如上安装mysql环境,并开启mysql服务

主master : 192.168.8.10

从slave  :   192.168.8.11

1、配置主库:

1)、授权给从数据库服务器

mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.8.11' identified by 'test123456';
mysql>FLUSH PRIVILEGES;

2)、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效

vim /etc/my.cnf

在该配置文件[mysqld]下面添加下面内容:

复制代码
[mysqld]
log-bin=/var/lib/mysql/binlog
server-id=1
binlog-do-db = cmdb

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
......
复制代码

server-id:master端的ID号;

log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的(我这里是偷懒了,直接放在了下面那个datadir下面);

binlog-do-db:要同步的数据库名

还可以显示 设置不同步的数据库:

binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

 

修改配置文件后,重启服务:service mysqld restart

如果启动失败,通过cat /var/log/mysqld.log | tail -30  查看mysql启动失败的日志,从日志内容寻找解决方案。

3)、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

复制代码
mysql> show master status;
+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000001 |     1304 | cmdb         |                  |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)
复制代码

主服务器已配置好。

 

2、配置从库

1)、理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:

复制代码
[mysqld]
server-id=2
master-host=192.168.8.10
master-user=rep1
master-password=test123456
master-port=3306
replicate-do-db=cmdb
......
复制代码

重启时报错:mysqld: unknown variable ‘master-host=

说明mysql不认识这些变量,网上搜罗了一番,原因是mysql5.5+版本主从复制不支持这些变量,需要在从库上用命令来设置,从库my.cnf里只保留server-id和

replicate-do-db两个参数。
:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
  MASTER_PORT=3306,
  MASTER_USER='rep1',
  MASTER_PASSWORD='test123456',
  MASTER_LOG_FILE='binlog.000001',
  MASTER_LOG_POS=1304; #后面两个参数的值与主库保持一致,执行show master status时,输出的position

2)、启动slave进程

mysql> start slave;
Query OK, 0 rows affected (0.04 sec)

3)、查看slave的状态,如果下面两项值为YES,则表示配置正确:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

特别注意:此处应为start slave

从库正在等待主库更新数据。。。Waitin for master to send event...

 

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

主库操作:

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

mysql>flush tables with read lock;

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

[root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql

3、将备份文件传到从库


[root@zhoujietest ~]# scp cmdb.sql root@192.168.8.11:/root/

4、主库解锁

mysql>unlock tables;

 

从库操作:

1、停止从库slave

mysql>stop slave;

2、新建数据库cmdb

mysql> create database cmdb default charset utf8;

3、导入数据

[root@ops-dev ~]# mysql -uroot -ptest123 cmdb<cmdb.sql 

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

复制代码
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cmdb               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
复制代码

 

此时主从库的数据完全一致,如果对主库进行增删改操作,从库会自动同步进行操作。

MySQL 中常见的高可用架构部署方案 主从复制是MySQL中最基本的高可用架构之一,通过将一个MySQL实例(主库)的数据复制到一个或多个MySQL实例(从库),实现数据的冗余备份和读写分离。主主复制是主从复制的扩展,两个MySQL实例互为主从,实现双向复制,提高系统的可用性和负载均衡能力。Galera Cluster是一种多主复制的集群方案,通过同步复制实现数据一致性和高可用性。MySQL Group Replication是MySQL官方提供的多主复制集群方案,通过Paxos协议实现数据一致性和高可用性。 阅读详情

相关推荐

说说“MySQL高可用方案”

在MySQL Replication中,主库为“Master”,从库为“Slave”,主库可以处理写入操作,从库只能读取并复制主库的数据,不能进行写入操作。是MySQL数据库常用的高可用解决方案之一。在MySQL中,主库为“Master”,从库为“Slave”,主库可以处理写入操作,从库只能读取并复制主库的数据,不能进行写入操作。总体来说,主从复制适合于读多写少、数据量较小的场景,可以快速备份、恢复数据,而MySQL Cluster则适合于数据量较大、读写负载较高、需要高可用性和高性能的场景。

_abab的专栏 740

MySQL 常用高可用方案

在使用 MGR 时,如果要实现完整的高可用方案,就需要用到 InnoDB Cluster。MHA(Master High Avaliable) 是一款 MySQL 开源高可用程序,MHA 在监测到主实例无响应后,可以自动将同步最靠前的 Slave 提升为 Master,然后将其他所有的 Slave 重新指向新的 Master。其大致原理是:在主实例的 Keepalived 中,增加监测本机 MySQL 是否存活的脚本,如果监测 MySQL 挂了,就会重启 Keepalived,从而使 VIP 飘到从实例。

AlbenXie的博客 7657

Keepalived实战:用MySQL主从高可用方案解决数据库单点故障(附完整配置脚本)

本文详细介绍了如何通过Keepalived实现MySQL主从集群的高可用方案,解决数据库单点故障问题。文章包含完整的配置脚本和实战步骤,涵盖智能健康检查、VRRP协议配置、故障转移优化等关键内容,帮助用户构建零停机的数据库环境。

weixin_30872337的博客 324

介绍几种 MySQL 官方高可用方案

MySQL 官方提供了多种高可用部署方案,从最基础的主从复制到组复制再到 InnoDB Cluster 等等。本篇文章以 MySQL 8.0 版本为准,介绍下不同高可用方案架构原理及使用场景。

MySQL技术 1425

MYSQL 5.6.36 配置搭建MHA实现MYSQL的主从复制高可用解决方案

这里写目录标题一、什么是MHA1、MHA的组成2、MHA的优势3、MHA的架构二、高可用案例1、实现需求2、实现思路3、环境准备(1)服务器(2)软件包4、安装mysql数据库5、配置主从同步6、搭建MHA7、配置无密码认证8、配置MHA9、在manager上启动 MHA10、模拟 master 故障 一、什么是MHA MHA(MasterHigh Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方 案,它由日本 DeNA 公司 youshimaton(现就职于 Facebook

shengjie87的博客 653

【MySQL】主从复制

MySQL是一款关系型数据库,被广泛应用于各种互联网应用中。随着业务的不断扩大,数据量不断增加,如何让MySQL具有更好的可用性和容灾能力成为了越来越重要的问题。本文将重点介绍MySQL主从复制和高可用性的实现,旨在为MySQL的使用者提供指导和帮助。本篇博客介绍了MySQL高可用性的常见解决方案,包括负载均衡、主从复制、主主复制以及结合MHA和Galera Cluster的整合方案。高可用性对于数据库系统至关重要,它可以确保用户的请求始终得以满足,并且降低系统停机时间的风险。

陈书予 1万+

mysql高可用方案,MySql主从复制原理及配置,binLog和GTID

目录 一、mysql高可用方案 1. aliyun高可用mysql(内部集成:扩容/主从/集群/故障切换) + 分表 2. 分库 + 自搭mysql主从 + 分表 + 手动或脚本主从切换 3. 更多集群架构 二、单讲binLog和GTID binLog GTID 三、MySql主从复制原理及配置 什么是主从复制? 主从模式优点 主从复制的原理 主实例搭建 从实例搭建 将主从数据库进行连接 主从复制测试 一、mysql高可用方案 1. aliyun高可用mysql..

仅做个人笔记 2989

MySQL高可用集群搭建与管理

作者:禅与计算机程序设计艺术 1.简介 随着互联网、大数据应用的日益普及,网站访问量激增,用户的查询次数越来越多,网站服务器的负载也随之增长。为了解决网站服务器负载过重的问题,提升网站服务质量,很多公司都会采用分布式集群部署MySQL数据库系统,通过将数据库分散到不同的服务器上,使得单个数据库失效不会影

AI天才研究院 2222

mysql高可用方案-配置主从复制

一、准备 1.已经安装好两台mysql server,mysql安装教程教程参考 http://rundreams.top/?p=146 2.mysql server 版本最好保持一致,不然可能会出现版本不兼容问题 二、Server配置文件修改 1.修改主服务器 master配置 /etc/my.cnf [mysqld] log-bin=m...

起而行动,方能平定心中的惶恐 353

MySQL高可用方案之MySQL Replication主从复制架构详解

摘要 MySQL主从复制是构建高可用数据库架构的基础方案,通过将主库数据同步到一个或多个从库实现读写分离、负载均衡和数据备份。本文详细介绍了主从复制的工作原理(基于Binlog Dump、I/O和SQL三个线程)、三种复制格式(STATEMENT/ROW/MIXED)的特点,并提供了完整的搭建步骤:包括主从服务器配置、复制用户创建、数据同步及状态监控。文章还涵盖了复制验证方法,帮助读者掌握这一关键技术的实施与维护要点,为构建可靠的MySQL数据库架构奠定基础。

专注于编程、AI、人工智能等多个领域内容研究和分析 188

深入浅出CenterFusion

结合论文和代码理解CenterFusion

Untitled的专栏 5104

【高可用MySQL解决方案】centos7配置mysql主从复制

【高可用MySQL解决方案】centos7配置mysql主从复制

wufaqidong1的博客 397

SUMO仿真教程(1) ——安装环境的设置(Windows 10系统)

SUMO安装环境的设置 目录一.SUMO下载的官方网址二.下载步骤:三.环境设置:1.打开设置环境变量的界面2.用户(Administrator)变量设置3.系统变量设置四.总述 一.SUMO下载的官方网址 sumo的下载地址: 二.下载步骤: 1.以sumo1.8.0为示例进行演示,点击下载地址; 2.选择Windows64位的安装版本,如下图所示: 3.点击对应版本会跳转到如下图所示的界面,等待几秒后会自动下载(温馨提示:请将下载路径提前设置好): 4.到目标存储路径下查看下载完成的SUMO(本

weixin_50632459的博客 1万+

MySQL: MHA架构详解与配置指南之基于GTID的高可用MySQL主从故障转移方案

MHA(MySQL Master High Availability)是一个基于Perl开发的MySQL高可用工具,专注于主从复制集群的自动故障转移。其核心优势包括:30秒内完成主库故障切换、通过二进制日志抢救机制减少数据丢失、支持GTID复制模式确保数据一致性。相比MMM架构,MHA支持从所有从库中选举新主库,并兼容半同步复制增强安全性。部署时需配置SSH互信和GTID复制模式,监控节点通过检测主库状态触发故障转移流程,包含日志保存、新主选举、差异日志同步等关键步骤。生产环境建议结合半同步复制和独立监控节

Wang的专栏 892

STM32 FATFS文件系统按行读取SD卡数据

STM32 SD数据实现按行读取

qq_32216815的博客 7829

【华为OD技术面试真题 - 技术面】- C++面试题(1)

2024华为OD面试手撕代码真题目录以及八股文真题目录

算法大师! 3398

K8s生产环境MySQL高可用方案:基于Helm的MySQL8.0主从架构配置详解

本文详细介绍了在Kubernetes生产环境中,如何利用Helm部署并优化MySQL 8.0的一主两从高可用架构。通过深度定制Bitnami的MySQL Helm Chart,配置StatefulSet、持久化存储及服务,实现读写分离与数据冗余。文章涵盖从环境准备、部署实战到监控备份、故障转移等生产级运维策略,为构建坚如磐石的云原生数据库服务提供完整指南。

web99的专栏 477

【七.三维视觉与视频分析】【1.点云处理:PointNet++/PointTransformer】

各位老铁,今天咱们要聊的可不是普通的二维图像处理,而是三维视觉领域最硬核的技术——点云处理。从最早的PointNet到如今的PointTransformer,这场技术进化堪比三维版的"像素革命"。今天咱们就深入解剖两大里程碑:PointNet++和PointTransformer,保证让你看完全文就能在点云领域横着走!想象一下,你抓了把沙子撒在空中,每粒沙子的位置都是三维坐标——这就是点云的典型形态。最后送大家一句话:点云处理就像在三维宇宙中寻找星辰的轨迹,既要望远镜的宏观视野,也要显微镜的细致入微。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 474

MySQL 主从复制:实现数据同步与高可用

主从复制是指将一个 MySQL 数据库服务器(主服务器)的数据复制到一个或多个 MySQL 数据库服务器(从服务器)上。MySQL 的主从复制功能为我们提供了一种简单而有效的方式来实现数据同步和高可用。在实际应用中,我们需要根据具体的业务需求和系统架构,选择合适的主从复制方案,并及时解决主从复制过程中出现的问题。MySQL 的主从复制是基于二进制日志(Binary Log)实现的。主服务器将所有的写操作记录到二进制日志中,从服务器通过读取主服务器的二进制日志,并在本地重放这些操作,从而实现数据的同步。

我爱娃哈哈的专栏 1240

RK3566 Android11默认客户Launcher修改

【代码】RK3566 Android11默认客户Launcher修改。

Android系统开发笔记 1725

你以为你懂 Java 反射?看了这篇源码分析,我发现我以前都错了

摘要:本文讲述了一次生产环境Metaspace内存溢出的故障排查经历。事故源于一个通用数据导出功能中频繁使用反射调用method.invoke(),触发了JVM的"膨胀机制":当同一Method对象调用超过15次时,JVM会动态生成GeneratedMethodAccessor类,导致Metaspace被撑爆。文章分析了问题根源在于循环中反复调用getMethods()创建新Method对象,并提出了三种解决方案:缓存Method对象、改用MapStruct/MethodHandle工具

BUG猿的博客 770

CentOS Stream 9 中部署 MySQL 8.0 MGR(MySQL Group Replication)一主两从高可用集群

当你上线一个数据库服务时,最怕的是什么?当然是——挂了!所以,我们需要让数据库高可用(High Availability),简单说就是:“就算有节点崩了,服务也不能停!那 MySQL 有哪些高可用的方案呢?我们来一一介绍。1 主从复制(经典老搭档)????原理:一个主库(Master)负责写,多个从库(Slave)负责读,通过二进制日志(binlog)同步数据。??优点架构简单,上手快性能可接受,读写分离效果好缺点没有自动故障转移(主挂了就得手动切)延迟不可避免(主从延迟问题)??通俗说法。

qq_42184486的博客 1174

金三银四!风控建模岗面试题库大全:从理论到实战避坑指南

风控建模面试大全

阿黎逸阳的博客 767

高可用记录

高可用资料整理,方便后续文档使用

207

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

手把手教你搭建MySQL高可用解决方案(MHA)

搭建MySQL高可用解决方案(MHA)

qq_43394776的博客 1072

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~

orchestrator 是基于 MySQL 主从的开源的 MySQL 高可用方案,可以管理上千个 MySQL 集群。实现 MySQL 高可用的同时,可配置实现自身的高可用。项目地址: https://github.com/openark/orchestrator。

hh的博客 4783

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: HBae找不到协处理器导致RegionServer全部挂掉
下一篇: HDFS查看文件的前几行-后几行-行数
Ronney-Hua
博客等级 码龄10年 48粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值