Docker:部署PXC8.0集群时,启动容器报错New joining cluster node didn‘t find all needed SSL artifacts
使用docker部署mysql PXC集群8.0版本,启动第二个节点的时候遇到报错,New joining cluster node didn't find all needed SSL artifacts。
问题点
Percona XtraDB Cluster包含pxc-encrypt-cluster-traffic启用SSL加密配置的变量,从而对SST,IST和复制通信进行加密 。
默认情况下pxc-encrypt-cluster-traffic启用此功能,从而使用安全通道进行复制。此变量不是动态变量,因此无法在运行时更改。
MySQL生成默认的密钥和证书文件,并将它们放置在数据目录中。这些自动生成的文件适用于自动SSL配置,但是您应该在所有节点上使用相同的密钥和证书文件。
解决方法
如上所述,MySQL会生成默认密钥和证书文件,并将它们放置在数据目录中。如果要覆盖这些证书,则可以生成以下新文件集:
- 证书颁发机构(CA)密钥和证书, 用于对服务器和客户端证书进行签名。
- 服务器密钥和证书, 用于保护数据库服务器活动和写集复制流量。
- 客户端密钥和证书, 以保护客户端通信流量。
这些文件应使用OpenSSL生成。
生成CA密钥和证书
证书颁发机构用于验证证书上的签名。
#进入容器
docker exec -it pxc bash
#更新apt-get源
apt-get update
#下载openssl
apt-get install openssl
#验证是否下载成功
openssl version -a

生成CA密钥文件
openssl genrsa 2048> ca-key.pem
生成CA证书文件
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
生成服务器密钥和证书
生成服务器密钥文件
openssl req -newkey rsa:2048 -days 3600 \ -nodes -keyout server-key.pem -out server-req.pem
删除密码
openssl rsa -in server-key.pem -out server-key.pem
生成服务器证书文件
openssl x509 -req -in server-req.pem -days 3600 \ -CA ca.pem -CAkey ca-key.pem -set_serial 01 \ -out server-cert.pem
生成客户端密钥和证书
生成客户端密钥文件
openssl req -newkey rsa:2048 -days 3600 \ -nodes -keyout client-key.pem -out client-req.pem
删除密码
openssl rsa -in client-key.pem -out client-key.pem
生成客户端证书文件
openssl x509 -req -in client-req.pem -days 3600 \ -CA ca.pem -CAkey ca-key.pem -set_serial 01 \ -out client-cert.pem
验证证书
要验证服务器证书和客户端证书已由CA证书正确签名,请运行以下命令
openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
#如果验证成功,您应该看到以下输出
服务器-证书。PEM : OK
客户端-证书。pem : 好的
部署密钥和证书
将密钥和证书文件发送到每个PXC容器节点内。将它们放在 /etc/mysql/certs/目录或类似位置下
需要以下文件:
证书颁发机构证书文件(
ca.pem和ca-key.pem)这些文件用于验证签名。
服务器密钥和证书文件(
server-key.pem和server-cert.pem)这些文件用于保护数据库服务器活动和写集复制流量。
客户端密钥和证书文件(
client-key.pem和client-cert.pem)仅当节点应充当MySQL客户端时,才需要这些文件。例如,如果您打算使用进行SST
mysqldump。
#文件赋予权限
chown 1001:1001 *.pem

启动成功!
或者你也可以通过这篇文章部署:
https://www.cnblogs.com/nhdlb/p/14032657.html
文章整合至:https://blog.csdn.net/lengyuehuan/article/details/109742246、https://www.percona.com/doc/percona-xtradb-cluster/8.0/security/encrypt-traffic.html#generate-keys-certs
Docker:部署PXC8.0集群时,启动容器报错New joining cluster node didn‘t find all needed SSL artifacts的更多相关文章
- windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error
windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...
- 一个tomcat部署两个springboot服务时启动JMX报错
一.问题来源 今天在部署开发好的组件的时候,发现无法启动,检查启动日志,报如下错误: 2022-03-17T10:39:41.823+08:00 ERROR vediomanage.vediomana ...
- docker之阿里云centos 7.x 启动容器报错处理办法
最近阿里云服务器(操作系统centOS 7.x) 安装docker,参照阿里云帮助文档https://help.aliyun.com/document_detail/51853.html?spm=a2 ...
- Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)
文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...
- 手把手教你用Docker部署一个MongoDB集群
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引 ...
- 多机部署redis5.0集群环境
redis5.0集群部署 一.集群介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redi ...
- Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战
Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...
- 单机部署redis5.0集群环境
#安装rediscd redis-5.0.0makemake install #部署集群mkdir redis_clustermkdir -p redis_cluster/{7000,7001,700 ...
- 使用docker部署mysql主从复制集群
一.环境搭建 虚拟机环境:centos7 IP: 启动3个容器,一个是master,端口是3307,另外两个是slaver,端口是3308和3309 docker pull mysql:5.7 doc ...
随机推荐
- Docker存储(4)
一.docker存储资源类型 用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉及到容器的数据管理 (1)Da ...
- 033.Python的__del__析构方法he__call__方法
一 __del__ 魔术方法(析构方法) 1.1 介绍 触发时机:当对象被内存回收的时候自动触发[1.页面执行完毕回收所有变量 2.所有对象被del的时候] 功能:对象使用完毕后资源回收 参数:一个s ...
- 将.netcore5.0(.net5)部署在Ubuntu的docker容器中
环境: 宿主机:winows 10 家庭版 虚拟机管理软件:Hyper-V 虚拟机系统:Ubuntu 20.10 Docker版本:Docker CE 20.10.2 ...
- 6.1 tar:打包备份
tar命令 在Linux系统里,tar是将多个文件打包在一起,并且可以实现解压打包的文件的命令.是系统管理员最常用的命令之一,tar命令不但可以实现对多个文件进行打包,还可以对多个文件打包后进 ...
- 阿里云轻量服务器价格及轻量与ECS服务器区别比较
https://yq.aliyun.com/articles/221647 摘要: 阿里云轻量应用服务器价格表及介绍,关于轻量应用服务器和ECS服务器的性能对比 阿里云轻量应用服务器是阿里云新推出的服 ...
- 企业定制CRM系统的5步流程
由于所处的行业不同,不同的企业对CRM系统的需求也不同.除了行业通用的功能之外,每个企业都有自己独特的功能需求.为了让CRM系统跟上这种需求的变化,CRM厂商通常也会提供CRM系统定制开发功能来满足不 ...
- kotlin知识点
主构造函数里的参数,如果不声明为var或者val,则这个参数一般是用来初始化父类.它不算是这个类的字段,它的作用域只在主构造函数当中. val 的对象不仅数据不能变, 引用也不能变. //自定义的类似 ...
- 微信小程序使用同声传译实现语音识别功能
我使用同声传译语音识别功能是为了实现微信小程序首页的语音搜索功能,如果你也是那么恭喜你,你可以ctrl+c.ctrl+v再改一改,如果你不是那么你也不要着急的走可以看完我的文章会对你有所帮助! 首先是 ...
- Go语言的函数02---参数
package main import "fmt" /* 常量,变量,函数---源代码的成员 给成员命名的字符称之为[标识符] 合法的标识符有:大小写字母,数字,下划线 命名时不能 ...
- CodeGen按钮循环
CodeGen按钮循环 按钮循环是一个模板文件构造,它允许您迭代CodeGen拥有的按钮信息集合. 在按钮循环中处理的按钮的定义可以来自两个位置之一. 如果基于UI工具箱输入 ...