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

国外设计欣赏网站wordpress电影网盘

国外设计欣赏网站,wordpress电影网盘,阿里巴巴网站建设方案,无锡网站策划公司1、介绍 MySQL InnoDB Cluster(MIC)是基于 MySQL Group Replication(MGR)的高可用性解决方案,结合 MySQL Shell 和 MySQL Router,提供自动故障转移和读写分离功能,非常适合生产环境 2、部署 …

1、介绍

MySQL InnoDB Cluster(MIC)是基于 MySQL Group Replication(MGR)的高可用性解决方案,结合 MySQL Shell 和 MySQL Router,提供自动故障转移和读写分离功能,非常适合生产环境

2、部署

2.1 环境准备

三台 Ubuntu 20.04 服务器(IP 分别为 192.168.100.61、192.168.100.62 和 192.168.100.63)

修改主机名称,添加域名解析

每台服务器都要执行
hostnamectl set-hostname mysql1

cat >>/etc/hosts<<EOF
192.168.100.61  mysql1
192.168.100.62  mysql2
192.168.100.63  mysql3
EOF

2.2 mysql部署(所有节点都要执行)

MIC 依赖 MySQL 8.0 的特性,因此需要安装 MySQL Server 8.0

2.2.1 安装相关工具
apt update
#部署mysql
apt install mysql-server -y#MySQL Shell 是 MIC 的管理工具,提供集群创建和维护的功能
apt install mysql-shell -y#
apt install mysql-router -y
2.2.2 修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'Admin@2025!';
CREATE USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'Admin@2025!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2.2.3 修改配置文件

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

[mysqld]
#每台服务器的唯一标识符,必须不同(例如 1、2、3)
server_id = 1
#允许远程连接
bind-address = 0.0.0.0
#gtid_mode = ON 和 enforce_gtid_consistency = ON:启用全局事务 ID(GTID),确保事务一致性
gtid_mode = ON
enforce_gtid_consistency = ON
#设置为行格式,支持 Group Replication
binlog_format = ROW
#启用二进制日志,记录数据库变更
log_bin = mysql-bin
#从节点记录主节点的更新
log_slave_updates = ON
#master_info_repository = TABLE 和 relay_log_info_repository = TABLE:将主从信息存储在表中,提高可靠性
master_info_repository = TABLE
relay_log_info_repository = TABLE#加载 Group Replication 插件
plugin_load_add = group_replication.so
#定义集群组名,需一致
group_replication_group_name = "my_group"
#避免服务启动时自动加入集群
group_replication_start_on_boot = off
#本节点的 MGR 通信地址
group_replication_local_address = "192.168.100.61:33061"
#集群所有节点的通信地址列表
group_replication_group_seeds = "192.168.100.61:33061,192.168.100.62:33061,192.168.100.63:33061"
#仅在首次创建集群时启用
group_replication_bootstrap_group = off

systemctl restart mysql

其他节点仅修改 server_id,group_replication_local_address即可

2.2.4 配置集群
mysqlsh --uri root@192.168.100.61:3306#检查和配置每个实例以支持 Group Replication,可能需要输入root账号 密码
dba.configureInstance('root@192.168.100.61:3306')
dba.configureInstance('root@192.168.100.62:3306')
dba.configureInstance('root@192.168.100.63:3306')#创建并扩展集群
var cluster = dba.createCluster('my_cluster')
cluster.addInstance('root@192.168.100.62:3306')
cluster.addInstance('root@192.168.100.63:3306')#验证集群状态
cluster.status()
2.2.4 测试集群数据同步功能

在mysql1上写一些测试数据,然后观察mysql2 mysql3是有有同步数据

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('test1');
2.2.5 router配置

功能

  • 读写分离:客户端连接6446端口访问主节点(读写),连接6447端口访问从节点(只读)。
  • 高可用性:若主节点故障,Router自动将请求路由到新的主节点(依赖集群的故障转移机制)。
  • 负载均衡:在只读模式下,Router可将请求分发到多个从节点

这里部署在mysql2主机上,用于测试功能,大家有时间可以改成Keepalived 和 HAProxy 组合实现router的高可用


# 初始化和配置MySQL Router,使其能够与MySQL InnoDB Cluster(或其他高可用架构)集成
mysqlrouter --bootstrap root@192.168.100.61:3306 --directory /etc/mysqlrouter --user=rootcat >>/etc/systemd/system/mysqlrouter.service<<EOF
[Unit]
Description=MySQL Router Service
Documentation=https://dev.mysql.com/doc/mysql-router/8.0/en/
After=network.target mysql.service[Service]
Type=simple
ExecStart=/usr/bin/mysqlrouter --config /etc/mysqlrouter/mysqlrouter.conf
ExecReload=/bin/kill -HUP 
Restart=on-failure
RestartSec=5s
PIDFile=/var/run/mysqlrouter/mysqlrouter.pid
PrivateTmp=true
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload && systemctl enable mysqlrouter && systemctl start mysqlrouter
mysql -h 192.168.100.62 -P 6446 -u root -p
2.2.5 验证高可用

1、停止mysql1的服务
systemctl stop mysql

2、查看变化
mysqlsh --uri root@192.168.100.62:3306

var cluster = dba.getCluster(‘my_cluster’);
cluster.status()

{"clusterName": "my_cluster", "defaultReplicaSet": {"name": "default", "primary": "mysql3:3306", "ssl": "REQUIRED", "status": "OK_NO_TOLERANCE_PARTIAL", "statusText": "Cluster is NOT tolerant to any failures. 1 member is not active.", "topology": {"mysql1:3306": {"address": "mysql1:3306", "memberRole": "SECONDARY", "mode": "n/a", "readReplicas": {}, "role": "HA", "shellConnectError": "MySQL Error 2003: Could not open connection to 'mysql1:3306': Can't connect to MySQL server on 'mysql1:3306' (111)", "status": "(MISSING)"}, "mysql2:3306": {"address": "mysql2:3306", "memberRole": "SECONDARY", "mode": "R/O", "readReplicas": {}, "replicationLag": "applier_queue_applied", "role": "HA", "status": "ONLINE", "version": "8.0.41"}, "mysql3:3306": {"address": "mysql3:3306", "memberRole": "PRIMARY", "mode": "R/W", "readReplicas": {}, "replicationLag": "applier_queue_applied", "role": "HA", "status": "ONLINE", "version": "8.0.41"}}, "topologyMode": "Single-Primary"}, "groupInformationSourceMember": "mysql3:3306"
}

可以看到mysql1 的状态变成MISSING ,mysql3 变成主节点了

3、测试是否可以写入数据

mysql -h 192.168.100.62 -P 6446 -u root -p’Admin@2025!’
mysql> create database test_ha;
mysql> show databases;

结果可以成功写入

现在恢复mysql1
systemctl start mysql

重复步骤2再次查看集群状态,发现mysql1的状态变成ONLINE, "replicationLag"表示复制延迟状态,applier_queue_applied 表示数据已同步完成。如果有延迟,可能会显示具体的时间差

查看mysql1丢失的数据是否存在

root@mysql1:~# mysql  -u root -p'Admin@2025!'mysql> show databases;

发现已经成功同步了之前丢失的数据

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

相关文章:

  • 智能饮水机方案开发MCU主控芯片要求
  • 做网站的步骤视频工程造价专业建设规划
  • HTTPS的加密方式
  • vue3提升 -- 1
  • Ubuntu从零开始配置Git
  • 做网站499微信网站设计制作
  • 网站开发充值功能经营管理培训课程
  • 使用 grubby工具进行多内核管理和切换的核心操作
  • LeetCode每日一题——三角形的最大周长
  • 英飞凌CoolSiC mosfet现在采用TO-247PLUS-4
  • Altium Designer(AD24)原理图符号库绘图按钮总结
  • 西安开发网站的公司西安网站建设ruiqinet
  • 自建网站 备案html5手机网站开发视频
  • spring 中 HttpStatus 与 ResponseEntity
  • 网站开发如何入账建设银行网站
  • C++ 圆台体积和表面积计算程序(Program for Volume and Surface area of Frustum of Cone)
  • 从 0 到 1 搭智能路侧停车系统:SpringCloud Nacos/Feign/Seata 全链路实现(源码可复用)
  • Bootstrap5 导航栏
  • 【基础理论】位置向量|位置编码学习笔记
  • 基于8051+PROTEUS仿真实例006-单只数码管循环显示0~9
  • 如何解决 pip install -r requirements.txt 子目录可编辑安装缺少 pyproject.toml 问题
  • C# 里的 KeyValuePair<TKey, TValue>
  • Speckit 简明教程
  • 明知手机忘带却不着急回去拿,因为可以远程控制
  • 深入理解 CSS 表格布局:table-layout 的秘密与实战详解(附费用报销单案例)
  • rsync+sersync实现数据实时双向同步
  • ppt模板去哪个网站下载德州核酸检测最新公告
  • 迅为RK3568开发板OpenHarmony系统南向驱动开发手册-UART应用开发编译源码
  • java面试-0216-HashMap和LinkedHashMap、TreeMap、HashTable√、ConcurrentHashMap区别?
  • 【文献分享】KADAIF:一种针对复杂微生物组数据的异常检测方法