图文网站源码/百度推广案例及效果
1.1 目的
部署MysqlCluster集群环境
1.2 MySQL集群Cluster原理
1 数据分片
MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上。这样可以将数据负载分散到多个服务器上,提高系统的性能和可扩展性。
2. 数据同步
MySQL集群Cluster使用多个服务器来存储数据,因此需要确保数据在不同的服务器之间同步。MySQL集群Cluster使用多种同步机制,如异步复制、半同步复制和全同步复制等,来确保数据的一致性和可靠性。
3. 负载均衡
MySQL集群Cluster使用负载均衡算法来分配客户端请求到不同的服务器上。这样可以避免单个服务器过载,提高系统的性能和可用性。
4. 自动故障转移
MySQL集群Cluster可以自动检测服务器的故障,并将故障服务器上的数据转移到其他服务器上。这样可以确保系统的高可用性和可靠性。
1.3 NDB引擎介绍
在MySQL实现集群Cluster架构中,存储节点使用的存储引擎为NDB引擎。NDB引擎是一种分布式的基于内存的引擎,因此作为MySQL集群Cluster架构中的存储节点,内存一定要足够大。
使用NDB引擎有以下优点:
1、基于内存存储,没有磁盘I/O瓶颈,速度快。
2、扩展性好,增加节点即可实现数据库集群Cluster的扩展。
3、冗余性好,单个节点故障,集群还可以提供服务。
同时,NDB引擎也有以下缺点:
1、由于存储基于内存,因此在设备断电后数据即丢失。
2、存储空间大小受内存大小限制。
3、多个节点分布式架构整体速度受会网络速度影响
1.4 InnoDB存储引擎
InnoDB是一种支持事务和行级锁的崇尚ACID特性的储存引擎。它是MySQL5.5版本后的默认引擎。InnoDB非常适合那些需要频繁进行更新操作的应用,比如在线事务处理系统(OLTP)。
使用InnoDB引擎有以下优点:
1、支持事务:InnoDB储存引擎具有事务处理的能力,能够保证数据的完整性和一致性。
2、行级锁:InnoDB通过行级锁来控制并发读写操作,提高了多用户环境下的并发性能。
3、外键约束:InnoDB支持外键约束,保证数据的完整性。
4、适合OLTP:InnoDB引擎特别适合处理大量的并发读写操作,如OLTP系统。
5、Crash Recovery:InnoDB具备崩溃恢复的功能,能够在异常退出后将数据恢复到一致的状态。
同时,InnoDB引擎也有以下缺点:
1、 读写效率较差。
2、 占用的数据空间相对较大。
1.5 MyISAM存储引擎
MyISAM是MySQL早期的默认储存引擎,它采用表级锁,适合处理大量的读操作。然而,它不支持事务和外键约束。
使用MyISAM引擎有以下优点:
1、表级锁:MyISAM采用表级锁,对于大量更新操作的并发性能较差。
2、不支持事务:MyISAM不支持事务处理,因此可能存在数据不一致的风险。
3、全文索引:MyISAM支持全文索引,适合处理搜索引擎和全文搜索等应用。
4、插入性能:MyISAM在插入性能方面较好,对于大量的插入操作,性能较高。
同时,MyISAM引擎也有以下缺点:
1、不支持事务的完整性和并发性。
1.6 引擎对比选择
InnoDB适用于大量的并发读写操作、需要事务处理和外键约束的应用;MyISAM适用于大量的读操作、不需要事务处理和外键约束的应用;NDB适用于高并发、实时性要求高的应用。
2. 部署程序
2.1 部署环境
服务器作用 服务器名 服务器IP 系统版本
管理节点 master 192.168.186.128 Centos7
数据节点 slave1 192.168.186.129 Centos7
SQL节点 slave2 192.168.186.130 Centos7
SQL节点 slave3 192.168.186.130 Centos7
2.2.1 修改四台主机名和添加hosts
#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#时间同步
yum install ntpdate -y
ntpdate time.windows.com
hostnamectl set-hostname master && bash #192.168.186.128上操作
hostnamectl set-hostname slave1 && bash #192.168.186.129上操作
hostnamectl set-hostname slave2 && bash #192.168.186.130上操作
hostnamectl set-hostname slave3 && bash #192.168.186.131上操作
#四台服务器同时添加内容
cat >> /etc/hosts << EOF
192.168.186.128 master
192.168.186.129 slave1
192.168.186.130 slave2
192.168.186.131 slave3
EOF
#所有机器上都操作
ssh-keygen -t rsa #一路回车,不输入密码
###把本地的ssh公钥文件安装到远程主机对应的账户
for i in master slave1 slave2 slave3;do ssh-copy-id -i .ssh/id_rsa.pub $i ;done
2.3 管理节点部署
2.3.1 管理节点原理
顾名思义,管理节点用来对其它节点进行管理。实际操作中,是通过对一个叫做config.ini的配置文件进行维护而起到管理的作用。该文件可以用来配置有多少需要维护的副本、需要在每个数据节点上为数据和索引分配多少内存、数据节点的位置、在每个数据节点上保存数据的磁盘位置、SQL节点的位置等信息。管理节点只能有一个,配置要求不高。
#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#时间同步
yum install ntpdate -y
ntpdate time.windows.com
mkdir -p /var/log/mysql-cluster
mkdir -p /etc/mysql-cluster
mkdir -p /usr/local/mysql && cd /usr/local/mysql #上传安装包到此路径下
wget https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz --no-check-certificate
tar -zxvf mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz #解压
mv mysql-cluster-8.0.25-linux-glibc2.12-x86_64 mysql-cluster #重命名
touch /etc/mysql-cluster/config.inicat > /etc/mysql-cluster/config.ini << EOF
[ndbd default]
#数据写入数量。1表示一份,1个数据节点
NoOfReplicas=1[ndb_mgmd]
nodeid=1
#管理结点的日志
datadir=/var/log/mysql-cluster
#管理结点的IP地址。本机IP
HostName=192.168.186.128###### data node options: #存储结点
[ndbd]
HostName=192.168.186.129
DataDir=/data/mysql
#mysql数据存储路径
nodeid=2# SQL node options: #关于SQL结点
[mysqld]
HostName=192.168.186.130
nodeid=3[mysqld]
HostName=192.168.186.131
nodeid=4
EOF
#初始化管理节点
/usr/local/mysql/mysql-cluster/bin/ndb_mgmd -f /etc/mysql-cluster/config.ini
#查看集群状态
/usr/local/mysql/mysql-cluster/bin/ndb_mgm
ndb_mgm> show
#发现管理节点已经启动,当数据节点以及SQL节点未启动时显示的是not connected。
2.4 数据节点部署
2.4.1 数据节点原理
用来存放Cluster里面的数据,可以有多个数据节点。每个数据节点可以有多个镜像节点。任何一个数据节点发生故障,只要它的镜像节点正常,Cluster就可以正常运行。
这3种逻辑上不同的节点物理上可以存放在不同的服务器上,也可以在同一台 服务器上。通过架构中各个节点的介绍,可以总结一下MySQL Cluter的访问过程:前台应用利用一定的负载均衡算法将对数据库的访问分散到不同的SQL节点上,然后SQL节点对数据节点进行数据访问并从数据节点返回结果,最后SQL节点将收到的结果返给前台应用。而管理节点并不参与访问过长,它只用来对SQL节点和数据节点进行配置管理。
#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#时间同步
yum install ntpdate -y
ntpdate time.windows.com
mkdir -p /usr/local/mysql && cd /usr/local/mysql
wget https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz --no-check-certificate
tar -zxvf mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz #解压
mv mysql-cluster-8.0.25-linux-glibc2.12-x86_64 mysql-cluster #重命名
useradd -M -s /sbin/nologin mysql
mkdir -p /etc/mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql/
cat > /etc/my.cnf << EOF[mysqld]
#mysql数据存储路径
datadir=/data/mysql
#启动ndb引擎
ndbcluster
#管理节点IP地址
ndb-connectstring=192.168.186.128[mysql_cluster]
#管理节点IP地址
ndb-connectstring=192.168.186.128
EOF
#启动数据节点
/usr/local/mysql/mysql-cluster/bin/ndbd –initial
#检查数据节点是否启动
/usr/local/mysql/mysql-cluster/bin/ndb_mgm
ndb_mgm> show
2.5 SQL节点部署(2台 SQL服务器同样的部署方式)
SQL节点可以理解为应用和数据节点之间的一个桥梁。应用不能直接访问数据节点,只能先访问SQL节点,然后SQL节点再去访问数据节点来返回数据。Cluster中可以有多个SQL节点,通过每个SQL节点查询到的数据都是一直的,通常来说,SQL节点越多,分配到每个SQL节点的负载就越少,系统的整体性能就越好。
#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#时间同步
yum install ntpdate -y
ntpdate time.windows.com
mkdir -p /usr/local/mysql
mkdir -p /etc/mysql
mkdir -p /data/mysql && cd /usr/local/mysql
wget https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz --no-check-certificate
tar -zxvf mysql-cluster-8.0.25-linux-glibc2.12-x86_64.tar.gz #解压
mv mysql-cluster-8.0.25-linux-glibc2.12-x86_64 mysql-cluster #重命名chown -R mysql:mysql /data/mysql/
useradd -M -s /sbin/nologin mysql
#创建SQL节点配置文件
cat > /etc/my.cnf << EOF[mysqld]
user=mysql
#启动ndb引擎
ndbcluster
#管理节点IP地址
ndb-connectstring=192.168.186.128[mysql_cluster]
#管理节点IP地址
ndb-connectstring=192.168.186.128
EOF
#配置mysql服务
cp /usr/local/mysql/mysql-cluster/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#编辑mysqld服务
vim /etc/init.d/mysqld
#图片中的代码如下:
# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
thenbasedir=/usr/local/mysql/mysql-clusterbindir=/usr/local/mysql/mysql-cluster/binif test -z "$datadir"thendatadir=/data/mysqlfisbindir=/usr/local/mysql/mysql-cluster/binlibexecdir=/usr/local/mysql/mysql-cluster/bin
elsebindir="$basedir/bin"if test -z "$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec"
fi
#初始化mysql数据库
cd /usr/local/mysql/mysql-cluster/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-cluster --datadir=/data/mysql/
#启动mysql
systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld#两台SQL节点操作相同。
#检查SQL节点是否启动
/usr/local/mysql/mysql-cluster/bin/ndb_mgm
ndb_mgm> show
#2台 SQL服务器同样的部署后,截图如下:
cp /usr/local/mysql/mysql-cluster/support-files/mysql.server /etc/init.d/mysqld
ln -s /usr/local/tools/mysql/bin/mysql /usr/bin
#登录数据库
mysql -uroot -p #初始化时候的密码
alter user user() identified by "Mysql@123"; #修改为新的密码
flush privileges;
3. 验证集群
#192.168.5.130上执行
mysql -uroot -pMysql@123 #利用修改后的密码登录
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndbinfo |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.11 sec)mysql> create database mqq;
Query OK, 1 row affected (0.17 sec)mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mqq |
| mysql |
| ndbinfo |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)mysql>
192.168.5.131上验证
mysql -uroot -pMysql@123 #利用修改后的密码登录
mysql> show databases;
可以看到数据完成同步。
至此MysqlCluster集群部署完成
4. 集群命令操作
4.1 管理节点操作
管理节点关闭(关闭管理节点后会一起关闭数据节点)
/usr/local/mysql/mysql-cluster/bin/ndb_mgm -e shutdownrm /usr/local/mysql/mysql-cluster/ndb_1_config.bin.1 #如果集群配置有更新了
4.2 数据节点操作
数据节点(NDB)关闭
cd /usr/local/mysql/mysql-cluster/bin
./ndbd stop
4.3 SQL节点操作
SQL节点关闭
systemctl stop mysqld
参考地址:https://blog.csdn.net/hanyuce/article/details/134684116?app_version=6.2.2&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22134684116%22%2C%22source%22%3A%22qq_14910065%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app
相关文章:

Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上
1.1 目的 部署MysqlCluster集群环境 1.2 MySQL集群Cluster原理 1 数据分片 MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上。这样可以将数据负载分散到多个服务器上,提高系统的性能和可扩展性。 2. 数据同步 MySQL集群Cluster使…...

身份认证技术
身份认证是对系统的用户进行有效性、真实性验证。 1.口令认证方式 使用口令认证方式,用户必须具有一个唯一的系统标识,并且保证口令在系统的使用和存储过程中是安全的,同时口令在传输过程中不能被窃取、替换。另外特别要注意的是在…...

Centos7、Mysql8.0 load_file函数返回为空的终极解决方法--暨selinux的深入理解
零、问题背景 最近想换房,为了方便自己对比感兴趣的房子,因此决定将目标房源的基本信息放在表里,特别是要一目了然的看到众多房子的各种图纸和照片,因此决定要在Mysql8.0.34数据库中以二进制形式保存图片(抛开合理性和…...

基于Spring Boot的水产养殖管理系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring Boot的水产养殖管理系统,jav…...

LCR 090. 打家劫舍 II(leetcode)动态规划
文章目录 前言一、题目分析二、算法原理1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值是什么 三、代码实现总结 前言 在本文章中,我们将要详细介绍一下LeetcodeLCR 090. 打家劫舍 II。采用动态规划解决,这是一道经典的多状态dp问题 一、题目分析…...

【小沐学Python】Python实现语音识别(Whisper)
文章目录 1、简介1.1 whisper简介1.2 whisper模型 2、安装2.1 whisper2.2 pytorch2.3 ffmpeg 3、测试3.1 命令测试3.2 代码测试:识别声音文件3.3 代码测试:实时录音识别 结语 1、简介 https://github.com/openai/whisper 1.1 whisper简介 Whisper 是…...

Nginx负载均衡实战
🎵负载均衡组件 ngx_http_upstream_module https://nginx.org/en/docs/http/ngx_http_upstream_module.html upstream模块允许Nginx定义一组或多组节点服务器组,使用时可以通过多种方式去定义服务器组 样例: upstream backend {server back…...

Redis skiplist源码解析(支持范围查询)
跳表是一个多层的有序链表,在跳表中进行查询操作时,查询代码可以从最高层开始查询。层数越高,结点数越少,同时高层结点的跨度会比较大。因此,在高层查询结点时,查询一个结点可能就已经查到了链表的中间位置…...

MVSNeRF:多视图立体视觉的快速推广辐射场重建(2021年)
MVSNeRF:多视图立体视觉的快速推广辐射场重建(2021年) 摘要1 引言2 相关工作3 MVSNeRF实现方法3.1 构建代价体3.2 辐射场的重建3.3 体渲染和端到端训练 3.4 优化神经编码体 Anpei Chen and Zexiang Xu and Fuqiang Zhao et al. MVSNeRF: Fast…...

华为OD机试真题-CPU算力分配-2023年OD统一考试(C卷)
题目描述: 现有两组服务器A和B,每组有多个算力不同的CPU,其中A[i]是A组第i个CPU的运算能力,B[i]是B组第i个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换,求两组服务器中,用于交换的CPU的算力,…...

校验数据是否重叠(各种操作符>,<,>=,<=,or,and)
最近接到一个需求,其中部分功能涉及到数据的重叠校验,并且录入的数据需要包含各种操作符。如果只通过java代码来查询并进行循环判断的话,判断情况会很复杂,幸好有同事的帮忙提供了一个用sql查询重叠部分的方法,现在分享…...

大一C语言作业 12.8
1.C 对一维数组初始化时,如果全部元素都赋了初值,可以省略数组长度。 这里没有指定数组长度,编译器会根据初始化列表的元素个数来确定数组长度。 2.C 在C语言中,字符数组是不能用赋值运算符直接赋值的。 3.C 在二维数组a中&#x…...

ELasticsearch:什么是语义搜索?
语义搜索定义 语义搜索是一种解释单词和短语含义的搜索引擎技术。 语义搜索的结果将返回与查询含义匹配的内容,而不是与查询中的单词字面匹配的内容。 语义搜索是一组搜索引擎功能,其中包括根据搜索者的意图及其搜索上下文理解单词。 此类搜索旨在通过…...

ooTD I 女儿是自己的,尽情打扮尽情可爱
分享女宝的时尚穿搭 奶乎乎的黄色也太好看了 超足充绒量+优质面料 柔软蓬松上身体验感超赞 怎么穿都好看系列 轻轻松松打造时尚造型!!...

第62天:django学习(十一)
cookie和session 发展史 一开始,只有一个页面,没有登录功能,大家看到东西都一样。 时代发展,出现了需要登录注册的网站,要有一门技术存储我们的登录信息,于是cookie诞生了。 cookie: - 存储形式:k:v键值对…...

Rust测试字符串的移动,Move
代码创建了一个结构体,结构体有test1 字符串,还有指向字符串的指针。一共创建了两个。 然后我们使用swap 函数 交换两个结构体内存的内容。 最后如上图。相同的地址,变成了另外结构体的内容。注意看指针部分,还是指向原来的地址…...

vue+electron问题汇总
1. Vue_Bug Failed to fetch extension, trying 4 more times 描述:项目启动时报错 解决:注释图片中内容 2. Module not found: Error: Can’t resolve ‘fs’ in 描述:项目启动报错 解决:vue.config.js中添加图中数据 3.导入…...

Linux中的网络时间服务器
本章主要介绍网络时间的服务器 使用chrony配置时间服务器配置chrony客户端服务器同步时间 1.1 时间同步的重要性 一些服务对时间要求非常严格,例如如图所示的由三台服务器搭建的ceph集群 这三台服务器的时间必须保持一致,如果不一致,就会显…...

fastadmin打印页面
如下图选中订单号进行打印 html中增加代码 <div id"toolbar" class"toolbar"><a href"javascript:;" class"btn btn-primary btn-refresh" title"{:__(Refresh)}" ><i class"fa fa-refresh">&l…...

Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式
我这边是因为业务需要将之前导出的word文档转换为PDF文件,然后页面预览下载这样的情况。之前导出word文档又不是我做的,所以为了不影响业务,只是将最后在输出流时转换成了PDF,当时本地调用没什么问题,一切正常…...

C\C++ 获取最值
C C 语言的不同类型的最值可以在 limits.h 头文件里找到定义 #include <limits.h>int main() {printf("%d", INT_MAX); // 整数最大值printf("%d", INT_MIN); // 整数最小值 } C C 有模板,可以通过替换下面的 int 和 doubleÿ…...

机器学习之无监督学习:九大聚类算法
今天,和大家分享一下机器学习之无监督学习中的常见的聚类方法。 今天,和大家分享一下机器学习之无监督学习中的常见的聚类方法。 在无监督学习中,我们的数据并不带有任何标签,因此在无监督学习中要做的就是将这一系列无标签的数…...

Linux高级管理-搭建网站服务
在Ihternet 网络环境中,Web 服务无疑是最为流行的应用系统。有了Web站点,企业可以充分 展示自己的产品,宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富 的网络应用。部署与维护Web 服务是运维工程师必须掌握的一个技…...

Windows 系统,TortoiseSVN 无法修改 Log 信息解决方法
使用SVN提交版本信息时,注释内容写的不全。通过右键TortoiseSVN的Show log看到提交的的注释,右键看到Edit log message的选项,然而提交后却给出错误提示: Repository has not been enabled to accept revision propchanges; ask …...

编译 Android gradle-4.6-all.zip 报错问题记录
编译 Android gradle-4.6-all.zip 报错问题记录 方法一:替换资源:方法二:修改源方法三:修改版本 编译时候无法下载 gradle-4.6-all Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip 方法一…...

Linux系统调试课:Valgrind 内存调试
文章目录 一、为什么要学会Valgrind二、什么是内存泄露三、Valgrind的移植四、Valgrind相关参数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Valgrind 是一个开源的内存调试和性能分析工具,用于帮助开发者找出程序中的内存错误,如内存泄漏、使用未初始化的内存、非…...

python主流开发工具排名,python开发工具有哪些
本篇文章给大家谈谈python的开发工具软件有哪些,以及python主流开发工具排名,希望对各位有所帮助,不要忘了收藏本站喔。 python中用到哪些软件 一、Python代码编辑器1、sublime Textsublime Text是一款非常流行的代码编辑器,支持P…...

Spring Boot Async:从入门到精通,原理详解与最佳实践
Spring Boot 的异步功能(Async)允许我们将某些任务异步执行,而不会阻塞主线程。这对于处理耗时的操作非常有用,如发送电子邮件、生成报表、调用外部 API 等。通过异步处理,我们可以释放主线程,让它继续处理…...

oracle 19c创建db_link名称带.com域名问题处理
文章目录 一、修改PDB的global_name二、重启数据库实例三、修改domain后重试 一、修改PDB的global_name SYSorcl1>sho pdbsCON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----------2 PDB$SEED …...

银行卡二要素API的应用案例:从在线购物到金融投资
引言 随着互联网技术的不断发展,人们的金融需求也在不断增加。随之而来的是各种新型金融服务的涌现,让用户的金融体验更加便利快捷。其中,银行卡二要素API的应用,则为用户的金融体验和安全性提供了极大的保障。 银行卡二要素API…...