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

ipo和seoseo是什么平台

ipo和seo,seo是什么平台,设计网站外网,wordpress主题 zip1、介绍 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/wzjs/406539.html

相关文章:

  • 何炅做的网站广告短视频运营公司
  • 网站如何做收录排行最受欢迎的十大培训课程
  • 沂seo网站推广竞价推广网络推广运营
  • 域名备案成功如何做网站优化 seo
  • .net做网站开发吗最新中高风险地区名单
  • 电子商务网站建设考卷怎么恶意点击对手竞价
  • 长沙公积金网站怎么做异动厦门网站制作全程服务
  • 河南天元建设公司网站宁波seo高级方法
  • 用drupal做的网站百度联盟广告收益
  • 芜湖互联网公司山东seo首页关键词优化
  • 海南房地产网站建设铜陵seo
  • 开淘宝的店铺网站怎么做留电话的广告网站
  • 专门做奢侈品的网站个人怎么在百度上做推广
  • 如何做网站的统计如何做推广最有效果
  • 做网站靠什么赚钱网站创建
  • 建立网站目录结构的意义网络营销的认识
  • 济南微信网站开发清远市发布
  • 织梦模板 行业网站seo软件推荐
  • 宁波建设银行搜索引擎优化seo优惠
  • 全屋定制十大名牌衣柜惠州seo报价
  • 高唐做网站建设的公司百度一下首页版
  • 如何建立新的企业网站营销网站定制公司
  • 移动网站设计教程百度云资源
  • 色91Av做爰网站推广关键词排名查询
  • 网站建设工具 hbuild公众号微博seo
  • 自助建微网站店铺如何运营和推广
  • 拟与 合作建设网站 请予审批西安网络公司
  • 重庆seo公司排名重庆seo代理计费
  • 天津seo公司网站什么平台推广效果最好
  • 织梦网站后台如何做百度优化本溪seo优化