mysql-集群-二进制部署

所有主机上操作
一、环境清理
yum erase $(rpm -qa | grep mysql) -y ; yum erase $(rpm -qa | grep mariadb) -y
##安装epel拓展源
yum install epel-release -y

然后开始搞信任进行相互传输
ssh root@192.168.171.18

##二进制安装包上传到这里
mkdir /soft
cd /soft

含有wsrep补丁mysql的二进制包下载地址
http://releases.galeracluster.com/mysql-wsrep-5.7/binary/mysql-wsrep-5.7.43-25.35-linux-x86_64.tar.gz

mysql-wsrep-相关包下载地址
http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/

galera下载地址
http://releases.galeracluster.com/galera-3/centos/7/x86_64/
要下载的文件列表
galera-3-25.3.37-1.el7.x86_64.rpm

同步安装包至其他主机
rsync -avz /soft root@192.168.241.25:/
rsync -avz /soft root@192.168.241.26:/

在全部主机上操作,进行二进制包安装(含有wsrep补丁)
开始部署
cd /soft
INSTALLDIR=‘/usr/local/mysql’
INIT_PASSWD_MODE=‘initialize-insecure’

##解包建账号授权
tar xzvf mysql-wsrep-5.7.43-25.35-linux-x86_64.tar.gz
mv mysql-wsrep-5.7.43-25.35-linux-x86_64 ${INSTALLDIR}
id mysql &>/dev/null || useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql ${INSTALLDIR}

安装相关包
yum install epel-release
yum install galera lsof -y
rpm -qa|egrep ‘galera|rsync|lsof’

#检查一下是否有mysql
cd /usr/local

开始配置集群
在第一台主机上操作,创建新集群

##查看一下路径 find / -name libgalera_smm.so
跟wsrep_provider路径是否一致
/usr/lib64/galera/libgalera_smm.so

cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=1
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://’
wsrep_node_name=‘galera1’
wsrep_node_address=‘192.168.171.17’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

第二台主机
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=2
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://192.168.171.17,192.168.171.18,192.168.171.19’
wsrep_node_name=‘galera2’
wsrep_node_address=‘192.168.171.18’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

第三台主机
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=3
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://192.168.171.17,192.168.171.18,192.168.171.19’
wsrep_node_name=‘galera3’
wsrep_node_address=‘192.168.171.19’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

全部主机上操作
初始化mysql
INSTALLDIR=‘/usr/local/mysql’
INIT_PASSWD_MODE=‘initialize-insecure’
I N S T A L L D I R / b i n / m y s q l d − − {INSTALLDIR}/bin/mysqld -- INSTALLDIR/bin/mysqld{INIT_PASSWD_MODE}
–basedir= I N S T A L L D I R − − d a t a d i r = {INSTALLDIR} \ --datadir= INSTALLDIR datadir={INSTALLDIR}/data
–user=mysql

全部主机上操作配置开机自启动服务
cat >/usr/lib/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=${INSTALLDIR}/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

##开始配置环境变量 加载生效
cat >/etc/profile.d/mysql.sh<<EOF
export PATH=$PATH:${INSTALLDIR}/bin
EOF

##全部主机上操作然后服务加载启动
systemctl daemon-reload
systemctl enable mysqld.service
systemctl start mysqld

##检查端口是否是4567 3306
ss -ntpl
手工启动mysql方式
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql &

查看日志/usr/local/mysql/mysql.log是否有错误输出

查看工作端口
ss -ntpl | grep mysqld
LISTEN 0 128 :4567 : users:((“mysqld”,pid=5780,fd=12))
LISTEN 0 128 [::]:3306 [::]:
users:((“mysqld”,pid=5780,fd=29))

##添加同步账号
设置root口令以后会同步至其他主机
#source /etc/profile
#mysql -u root -p
mysql>set password=‘Qianfeng123!’;
mysql>grant all on . to ‘syncuser’@‘%’ identified by ‘QianFeng@123’;
mysql>flush privileges;
mysql>exit

在其他主机上查看同步用户的生成情况
#mysql -u root -p
#show grants for syncuser;

查看工作端口
ss -ntpl | grep mysqld
LISTEN 0 128 :4567 : users:((“mysqld”,pid=5780,fd=12))
LISTEN 0 128 [::]:3306 [::]:
users:((“mysqld”,pid=5780,fd=29))

如果报错,只有4567端口则杀死该进程并将galera.cache、grastate.dat**两个文件删除
再将galera1中的/etc/my.cnf配置文件中的wsrep_cluster_address改成wsrep_cluster_address=‘gcomm://’
ps aux | grep mysqld | grep -v grep | awk ‘{print $2}’ | xargs kill
rm -f /usr/local/mysql/data/{galera.cache,grastate.dat}
systemctl start mysqld

#所有节点查看集群地址
mysql> SHOW VARIABLES LIKE ‘wsrep_cluster_address’;

#所有节点查看Galera集群状态,观察wsrep_cluster_size、wsrep_incoming_addresses、wsrep_ready是否都一致
mysql> show status like ‘wsrep%’;

群集创建成功以后,最后修改第一台主机的my.cnf
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=1
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://192.168.241.24,192.168.241.25,192.168.241.26’
wsrep_node_name=‘galera1’
wsrep_node_address=‘192.168.241.24’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

systemctl restart mysqld

ss- ntpl

当所有节点的mysqld都停止后或者服务器断电了需要重启galera集群,想要重启集群:

  • 需要先把开机自启的myqld停止掉,保证当前系统没有mysqld进程,服务器重启后会有mysqld进程,有4567端口,但是没有3306端口,因为开机自启的mysqld启动不成功,杀死4567端口对应的进程
    ps aux | grep mysqld | grep -v grep | awk ‘{print $2}’ | xargs kill
  • 再将galera.cache、grastate.dat**两个文件删除
    rm -f /usr/local/mysql/data/{galera.cache,grastate.dat}
  • 再将galera1中的/etc/my.cnf配置文件中的`wsrep_cluster_address改成wsrep_cluster_address=‘gcomm://’
  • 依次启动galera1、galera2、galera3的mysqld服务即可使集群恢复正常
  • 最后所有节点的galera服务都正常后,再将`wsrep_cluster_address改成wsrep_cluster_address=‘gcomm://192.168.241.23,192.168.241.24,192.168.241.25’,最后重启mysqld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git保持账号密码一键拉取并检查运行权限为www用户775

macos 使用zenTermLite 保持账号密码 下面是保持账号密码1000小时不过期 git config --global credential.helper cache git config --global credential.helper cache --timeout360000通过脚本一键部署并检查www权限 这是在zenTermLite工具中快捷命令实现的,其中注意yourp…

面试阿里算法岗,艰难走到终面了。。。

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…

3D透视图转的时候模型闪动怎么解决?---模大狮模型网

在3D建模与渲染的世界中&#xff0c;透视图是我们观察和操作模型的重要窗口。然而&#xff0c;有时候在旋转透视图时&#xff0c;模型会出现闪动的现象&#xff0c;这不仅影响了我们的工作效率&#xff0c;还可能对最终的渲染效果产生负面影响。本文将探讨这一问题的成因&#…

prompt提示词:如何让AI帮你提一个好问题

我们看完一篇文章的时候&#xff0c;有时候发给AI后&#xff0c;不知道如何问AI&#xff0c;不知道问哪些问题&#xff0c;你使用这个提示词&#xff0c;就可以让AI帮你想一个好问题&#xff0c;然后你用AI想好的问题再去问AI 能提出一个好的问题是非常难的 提示词 结合文章…

Elasticsearch8.13.4版本的Docker启动关闭HTTPS

博主环境是&#xff1a; 开发环境&#xff1a;SpringbootElasticSearch客户端对应的starter 2.6.3版本 maven配置 <!-- ElasticSearch --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elas…

计算机体系结构-2024期末考试

前言 最后一个字落笔&#xff0c;虽然知道并没有发挥到最好&#xff0c;内心还是感慨良多。 真正意义上本科阶段的课程考试&#xff0c;到此就结束了。 正如青春总有不完美的地方&#xff0c;此刻思绪竟飘到了三年前的盛夏&#xff0c;那个骄傲的少年。 扯远了&#xff0c;…

基于双PI结构FOC闭环控制的永磁同步电机控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于双PI结构FOC闭环控制的永磁同步电机控制系统simulink建模与仿真。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB2022a 64 4.系统原理简介 永磁同步电机&a…

WDK中-czwebfg的作用

WDK中build -czwebfg 后面的czwebfg是&#xff1f; 在 Windows Driver Kit (WDK) 中&#xff0c;build 命令用来编译驱动程序。build 命令可以带有多个选项&#xff0c;这些选项可以用来控制编译过程。build 命令后面的 -czwebfg 是一组编译选项&#xff0c;每个字母代表一个…

基于遗传优化的货柜货物摆放优化问题求解matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化的货柜货物摆放优化问题求解matlab仿真。在一个货架上&#xff0c;初始状态下&#xff0c;随机将货物放在货柜上&#xff0c;优化之后&#xff0c;整…

(delphi11最新学习资料) Object Pascal 学习笔记---第13章第3节 (弱引用是系统托管的 )

13.4.2 弱引用是系统托管的 ​ 弱引用的托管是一个非常重要的内容。换句话说&#xff0c;系统会在内存中保存一个弱引用列表&#xff0c;当对象被销毁时&#xff0c;系统会检查是否有任何弱引用指向该对象&#xff0c;如果有&#xff0c;系统会将实际引用赋值为 nil&#xff0…

Thinkphp5响应式进销存仓库管理系统

随着企业规模的不断扩大和市场竞争的日益激烈&#xff0c;进销存管理在企业的运营中扮演着越来越重要的角色。为了提高企业的运营效率&#xff0c;降低库存成本&#xff0c;提升客户满意度&#xff0c;越来越多的企业开始引入进销存仓库管理系统。 进销存仓库管理系统是一种集…

【go从入门到精通】精通并发编程-使用atomic管理状态和同步的无锁技术

了解原子计数器 在 Go 中,原子计数器是多个 goroutine 可以同时访问的共享变量。术语“原子”是指在计数器上执行的操作的不可分割的性质。在 Go 中,原子计数器允许多个 goroutine 安全地更改共享变量,而无需使用锁或任何其他显式同步,这可确保数据完整性并避免竞争条件。 …

Gradle的学习

1.1 Gradle的优势 一款最新的&#xff0c;功能最强大的构建工具&#xff0c;用它逼格更高 使用Groovy或Kotlin代替XML&#xff0c;使用程序代替传统的XML配置&#xff0c;项目构建更灵活 丰富的第三方插件&#xff0c;让你随心所欲使用 完善Android,Java开发技术体系 1.2 …

【JavaScript】P4 什么是变量,变量的声明与赋值

目录 1 变量是什么2 变量的操作2.1 声明变量2.2 变量赋值 3 变量命名规范 1 变量是什么 变量是容器&#xff0c;用于存放数据。数据的类型不定&#xff0c;可以是整数&#xff0c;可以是字符串&#xff0c;可以是浮点数…而变量的本质&#xff0c;则是在内存中开辟一个小的空间…

Unity3D 基于ILRuntime热更框架设计详解

ILRuntime是一个基于C#的热更框架&#xff0c;可以在运行时动态加载C#脚本&#xff0c;实现热更新功能。在本文中&#xff0c;我们将详细介绍如何在Unity3D中使用ILRuntime框架进行热更&#xff0c;并给出具体的技术实现和代码示例。 对惹&#xff0c;这里有一个游戏开发交流小…

EasyDarwin全面指南:从基础到高级应用

本指南全面介绍了EasyDarwin开源流媒体平台框架&#xff0c;包括其历史、架构、功能、部署、使用教程以及社区支持。适合初学者和专业人士深入了解和应用EasyDarwin。 文章目录 EasyDarwin基础介绍EasyDarwin是什么EasyDarwin的历史和发展EasyDarwin的功能和应用场景EasyDarwin…

[Algorithm][动态规划][子数组/子串问题][最大子数组和][环形子数组的最大和][乘积最大子数组][乘积为正数的最长子数组长度]详细讲解

目录 1.最大子数组和1.题目链接2.算法原理详解3.代码实现 2.环形子数组的最大和1.题目链接2.算法原理详解3.代码实现 3.乘积最大子数组1.题目链接2.算法原理详解3.代码实现 4.乘积为正数的最长子数组长度1.题目链接2.算法原理详解3.代码实现 1.最大子数组和 1.题目链接 最大子…

CSS(七)

文章目录 CSS&#xff08;七&#xff09;1. 精灵图&#xff08;重点&#xff09;1.1 为什么需要精灵图1.2 精灵图&#xff08;sprites&#xff09;的使用1.3 案例&#xff1a;拼出自己名字1.3.1 案例效果1.3.2 代码参考 2. 字体图标2.1 字体图标的产生2.2 字体图标的优点**2.3*…

物联网Python项目开发实战:智能种植系统

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: 物联网Python项目开发实战-智能物联网种植系统-编程案例解析实例详解课程教程.pdf 一、引言 随着物联网技术的快速发展,其在农业领域的应用越来越广…

玩转STM32-通用同步/异步收发器USART(详细-慢工出细活)

CPU与外围设备之间的信息交换或计算机与计算机之间的信息交换称为通信。基 本的通信方式有两种&#xff0c;即并行通信和串行通信。文章目录 一、串行通信基础1.1 串行通信的方式1.2 串行通信的数据传输形式1.3 波特率 二、STM32的USART的结构特征&#xff08;了解&#xff09;…