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

新乡网站建设哪家正规百度搜索推广的五大优势

新乡网站建设哪家正规,百度搜索推广的五大优势,网站建设费用 多少钱,塘沽网站建设文章目录 问题描述解决思路问题解决容器构建mysql客户端安装容器与主机的交互docker中执行 mysqldump 命令解决mysql8密码验证问题解决密码插件警告 问题描述 由于,使用1panel可视化的面板来部署springboot项目,可以很方便地安装和使用mysql&#xff0c…

文章目录

  • 问题描述
  • 解决思路
  • 问题解决
    • 容器构建mysql客户端安装
    • 容器与主机的交互
    • docker中执行 mysqldump 命令
    • 解决mysql8密码验证问题

问题描述

  • 由于,使用1panel可视化的面板来部署springboot项目,可以很方便地安装和使用mysql,redis等环境,另外部署的项目使用面板管理起来也很方便。所以,难免会遇到不同容器之间的交互。
  • springboot部署在一个容器中中,mysql部署在另一个容器中,在springboo项目中实现定时任务,备份mysql容器的数据库文件,如何实现?

解决思路

  • 首先,需要在容器环境中使用容器相关命令
    • 容器安装mysql客户端
    • 容器内的 Docker CLI 与主机上的 Docker 守护进程进行交互
    • 执行数据库备份命令

问题解决

容器构建mysql客户端安装

  • 修改软件源,安装mysql-client
# 基于官方的 openjdk:8-jdk-slim 镜像构建
FROM openjdk:8-jdk-slim
# 更新源列表
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \apt-get update# 安装必要的软件包
RUN apt-get install -y \curl \default-mysql-client \&& rm -rf /var/lib/apt/lists/*# 设置工作目录
WORKDIR /app# 将项目文件复制到容器中
COPY ./spring-0.0.1-SNAPSHOT.jar /app
# 添加执行权限
RUN chmod +x /xxx/docker_backup.sh
# 暴露应用程序端口
EXPOSE 8080# 启动应用程序
CMD ["java", "-jar", "spring-0.0.1-SNAPSHOT.jar"]

容器与主机的交互

root@d31e5e724869:/app# docker exec $mysql_docker_name mysqldump -u root -p$password -h localhost db_name> /home/backup.sql
bash: docker: command not found 
  • 错误消息 “bash: docker: command not found” 表示 Docker 命令在 Docker 容器内不可用。

  • 因为 Docker 通常安装在主机系统上,而不是容器内。容器在隔离的环境中运行,通常默认情况下无法直接访问主机上的 Docker 命令。

  • 如果需要在 Docker 容器内执行 Docker 命令,可以使用 Docker-in-Docker (DinD) 或 Docker outside of Docker (DooD) 方法。通常不建议在 Docker 容器内运行 Docker 命令。

  • 两种方法的简要解释:

  1. Docker-in-Docker (DinD): 涉及在 Docker 容器内运行 Docker 守护进程。它允许你从一个容器内构建和运行其他容器。但要正确设置它可能会有一定挑战,而且可能存在安全问题。

  2. Docker outside of Docker (DooD): 将主机上的 Docker 套接字挂载到容器中。容器内的 Docker CLI 与主机上的 Docker 守护进程进行交互,从容器内控制主机上的 Docker。比 DinD 更安全。

  3. 修改 Docker 运行命令: 更新你的 docker run 命令,将主机上的 Docker 套接字挂载到容器中。替换现有的 docker run 命令如下:

docker run -d --name xxx-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \  # 挂载 Docker 套接字
xxx
  • 通过添加 -v /var/run/docker.sock:/var/run/docker.sock,允许容器内的 Docker CLI 与主机上的 Docker 守护进程通信。

docker中执行 mysqldump 命令

  • 在挂载了主机上的 Docker 套接字的容器中执行 docker exec 命令,会遇到问题,因为 docker exec 是用于在其他 Docker 容器中运行命令的。
  • 要在同一容器中执行 mysqldump 命令,可以直接运行 mysqldump 而无需使用 docker exec。
    如:
mysqldump -u root -pxxx -h mysql_docker_name db_name > /home/backup.sql

  • 使用脚本备份

    • 在dockerfile中添加代码
    # 添加执行权限
    RUN chmod +x /usr/docker_backup.sh
    
  • 如果 MySQL 和 program容器在同一个 Docker 网络中,并且想从 program容器中连接到 MySQL 容器来执行备份命令,你可以通过容器名称进行连接。

  • 在 Docker 网络中,容器可以通过它们的名称进行通信。

2.在 program 容器中执行备份命令: 在 docker_backup.sh 脚本中,可以使用 MySQL 容器的名称来执行备份命令。

#!/bin/bash
# -h mysql_docker_name 意味着使用 xxx 作为主机名进行连接
mysqldump -u root -pxxx -h mysql_docker_name db_name > /home/backup/backup.sql

解决mysql8密码验证问题


mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)" when trying to connect  mysql报错2023-10-18T09:53:48.190738Z 82 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead' 
  • 错误表明 mysqldump 无法通过默认的本地套接字连接到 MySQL 服务器,并且还有一个关于密码插件的警告。这通常发生在容器化环境中,因为 MySQL 服务器和 mysqldump 命令运行在不同的容器中。

  1. 指定 MySQL 服务器的主机和端口: 由于 mysqldump 默认尝试通过本地套接字连接 MySQL 服务器,明确指定要使用的主机和端口。
    mysqldump -u root -p$your_password --default-character-set=utf8mb4 -h $mysql_host $db_name > /home/backup.sql
    
  • mysql_host 替换为你 MySQL 服务器容器的主机名或 IP 地址,将 your_password替换为 MySQL 服务器用户密码。

解决密码插件警告

  • 关于密码插件的警告通常是由于 MySQL 8 之后使用了默认的密码插件 caching_sha2_password 而不是 mysql_native_password。
    • 如果你正在创建用户,可以使用以下命令指定密码插件:
     CREATE USER 'your_user'@'%' IDENTIFIED WITH 'caching_sha2_password' BY 'your_password';
    
    • 如果用户已创建,请更改密码插件并重置密码:
     ALTER USER 'your_user'@'%' IDENTIFIED WITH 'caching_sha2_password' BY 'your_password';
    
http://www.hkea.cn/news/673100/

相关文章:

  • 广州网站优化公司大亚湾发布
  • 广州网站开发招聘百度经验悬赏令
  • 吴江建设局网站郑州粒米seo外包
  • 建设工程合同纠纷与劳务合同纠纷seo培训教程视频
  • 找网站建设公司哪家最好沈阳市网站
  • sh域名做的好的网站什么是营销
  • 网站平台怎么做推广一站式网络推广服务
  • 百度对新网站排名问题兰州seo快速优化报价
  • 网站建设常用代码湘潭网络推广
  • 做网站上传图片一直错误好用搜索引擎排名
  • 钟祥网站建设网络推广的含义
  • 新闻类网站源码青岛官网seo
  • 网站优化哪里可以做百度营销客户端
  • 常德建设局网站北京优化网站方法
  • 用ip做网站优化手机流畅度的软件
  • 为网站添加统计媒介
  • 商业设计网站推荐互联网营销师证书是国家认可的吗
  • 做网站的是干嘛的怎样把自己的产品放到网上销售
  • 品牌型网站制作价格2022年小学生新闻摘抄十条
  • 政府网站群集约化建设网络暴力事件
  • 可以做卷子的网站游戏app拉新平台
  • 长沙优化网站关键词社区营销
  • 个人网站制作价格表重庆关键词优化
  • 网站开发ideseo优化网站模板
  • 关于制作网站收费标准怎样把个人介绍放到百度
  • 网站建设 绵阳百度开放平台
  • discuz修改网站标题微信小程序开发平台
  • 怎么做国内网站吗seo顾问培训
  • 网站排名不稳定怎么办seo+网站排名
  • 做网站要淘宝热搜关键词排行榜