首页 > 数据库 >使用Alpine Linux做基础镜像备份mysql8.0+数据库

使用Alpine Linux做基础镜像备份mysql8.0+数据库

时间:2023-02-24 11:03:28浏览次数:51  
标签:sha2 ## Linux mysql8.0 mysql 镜像 password Alpine

说明

本篇文章仅是基于k8s cronjob备份mysql8.0+数据库,使用 Alpine Linux 作为基础镜像时遇到的问题做下简单的排坑,没有涉及到具体的部署细节,后面有时间再补上。

镜像打包

## 最新镜像
docker build -t  registry.cn-shanghai.aliyuncs.com/test/mysql-backup:202302211550 .

定时执行

基于k8s crontabjob 运行形式,每天凌晨12点整开始运行。

解决的坑

MySQL 8: caching_sha2_password not supported

详细报错如下:

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: Error loading shared library /usr/lib/mysql/plugin/caching_sha2_password.so: No such file or directory

我基础镜像使用的是Alpine linux镜像,仅包含 MariaDB 版本的 mysql-client,并且他们不打算很快支持 sha2,待备份 mysql 数据库均是8.0+版本以上。

关于alpine linux可详见官网。

这里提供几种方法供参考,我使用的方法四

方法一:从 mysql 8 手动编译 mysql-client

这种方法太费劲,对于想使用 Alpine Linux 作为build镜像的基础镜像来说,更费劲一些,算是个思路吧。

方法二:切换到 debian 作为该镜像的基础镜像

如果能容忍build后镜像的大小,这种方式完全是可行的,当然你也可以选择使用 CentOS 或 Ubuntu 作为基础镜像。

方法三:更改数据库配置

大家使用的mysql可能部署在不同的系统,可能是windows也可能是Linux,这里提供一个链接供大家参考。

方法四:安装扩展包

## Alpine:3.8+
apk add --no-cache mariadb-connector-c-dev

这会将缺少的caching_sha2_password.so库添加到/usr/lib/mariadb/plugin/caching_sha2_password.so中。

Max retries exceeded with url

详细报错如下:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host=‘xxx’, port=443): Max retries exceeded with url

这边采用的措施:

## 增加重试连接次数
requests.adapters.DEFAULT_RETRIES = 5
## 关闭多余的连接
s = requests.session()
s.keep_alive = False
## 增加休眠时间
time.sleep(3)
## 及时关闭连接和证书认证
res = requests.post(url, headers=headers, data = json.dumps(post_data),verify=False)
res.close()

参考文档

标签:sha2,##,Linux,mysql8.0,mysql,镜像,password,Alpine
From: https://blog.51cto.com/wutengfei/6078789

相关文章

  • 关于Linux下nfs文件系统挂载时间的查询
    OS环境:RedHatEnterpriseLinuxrelease8.1(Ootpa)服务端内核版本:4.18.0-147.el8.x86_64服务端NFS版本:nfs-utils-2.3.3-57.el8_7.1.x86_64 最近在检查一台服务器......
  • Linux 比较奇怪的docker启动报错,原因暂时不清楚
          Linux比较奇怪的docker启动报错,竟然和iptables有关系我是在虚拟机上偶然发现的,在虚拟机上安装了lnmp环境后,经过一番实验,lnmp下的安装已经基本达到目的,想......
  • linux|奇怪的知识---linux权限管理之数字权限和字母权限
    前言:linux的权限管理是比较复杂的,主要原因是linux系统是一个多用户的并且是一个多种权限的权限系统。基本权限有:读,写,执行。特殊权限有:SUID,SGID,SBIT,隐藏权限a i用户:超级用......
  • Linux 脚本编译安装http-2.4.27版本
           Linux脚本编译安装http-2.4.27版本运行脚本前请将国内的比较快的基础源和epel源配置好,剩下就不用管了,运行脚本,半个小时左右自动编译安装完,并且大部分......
  • Linux 关于修改hostname的若干问题以及不重启也能生效
        Linux关于修改hostname的若干问题以及不重启也能生效不得不吐槽一下了,Linux不友好的地方应该就在这了,要达到一个目的,可能会有N个解决方案,不过勉强可以理解,Linux......
  • Linux 脚本一键安装openstack(queens版本)
                Linux脚本一键安装openstack(queens版本)分为三个文件,一个配置文件local_settings,两个脚本文件,一个为主节点脚本,一个为计算节点脚本。......
  • Linux 快速永久关闭iptables
               Linux快速永久关闭iptables分三步,第一步:执行命令iptables-F第二步:执行命令whereisiptables 查询出iptables这个程序的位置第三步:......
  • Linux 使用脚本速配Jdk8.20
                Linux使用脚本速配Jdk8.20#!/bin/bashwgethttp://dl.mycat.org.cn/jdk-8u20-linux-x64.tar.gztar-zxf`find/-namejdk-8u20-linu......
  • Linux 基于history命令记录操作用户,命令执行时间,登陆IP等信息
      Linux基于history命令记录操作用户,命令执行时间,登陆IP等信息Linux默认的history命令是一个常用的系统内置命令,该命令用来记录在某一个的所有使用过的命令的历史,但默......
  • Linux用户权限管理之 su和sudo
                      Linux用户权限管理之su和sudo首先需要说明,su和sudo这两个命令产生的原因。根本原因在于Linux系统是一个多角色的......