Docker 安装 Mysql

以下是安装Docker版MySQL 8.0.25并实现目录挂载的步骤:
docker仓库:https://hub.docker.com/_/mysql


1. 拉取Mysql镜像文件

docker pull mysql:8.0.25

2. 创建mysql临时容器服务

docker run -d \--name mysql \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=123456 \mysql:8.0.25

3. 创建宿主机挂载目录

mkdir -p /root/docker/mysql/{data,init,conf,logs}
  • /root/docker/mysql/data:映射容器的 /var/lib/mysql(数据库文件)
  • /root/docker/mysql/init:映射容器的 /docker-entrypoint-initdb.d(初始化 SQL/Shell 脚本)
  • /root/docker/mysql/conf:映射容器的 /etc/mysql/conf.d(自定义配置文件)
  • /root/docker/mysql/logs:映射容器的 /var/log/mysql(自定义日志文件)

4. 调整目录权限(避免权限问题)

#[root@localhost ~]# docker run --rm mysql:8.0.25 sh -c 'cat /etc/passwd | grep mysql'
#mysql:x:999:999::/home/mysql:/bin/sh
chmod -R 755 /root/docker/mysql/{data,init,conf,logs}
chown -R 999:999 /root/docker/mysql/data  # MySQL容器内默认使用UID/GID 999
chmod -R 777 /root/docker/mysql/logs      # 确保容器可写入日志

5. 将容器中的数据、配置信息复制到宿主机

docker cp mysql:/var/lib/mysql/. /root/docker/mysql/data
docker cp mysql:/docker-entrypoint-initdb.d/. /root/docker/mysql/init
docker cp mysql:/etc/mysql/conf.d/. /root/docker/mysql/conf

6. 准备MySQL配置文件

创建或编辑配置文件 `/root/docker/mysql/conf/my.cnf:

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
# 错误日志
log_error = /var/log/mysql/error.log
# 可选:启用通用日志和慢查询日志
general_log = 1
general_log_file = /var/log/mysql/mysql.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log# 其他自定义配置...

7. 准备初始化脚本(由于步骤2已完成初始化导致该测试脚本未生效)

将SQL脚本(如建表语句)放入 /root/docker/mysql/init,例如:

echo "CREATE DATABASE IF NOT EXISTS test_nacos;" > /root/docker/mysql/init/test.sql

8. 启动MySQL容器

# 删除临时容器
docker rm -f mysql
# 启动新容器
docker run -d \--name mysql \-p 3306:3306 \#--restart unless-stopped-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456 \-v /root/docker/mysql/data:/var/lib/mysql \-v /root/docker/mysql/init:/docker-entrypoint-initdb.d \-v /root/docker/mysql/conf:/etc/mysql/conf.d \-v /root/docker/mysql/logs:/var/log/mysql \mysql:8.0.25 \--character-set-server=utf8mb4 \--collation-server=utf8mb4_unicode_ci
参数说明
  • -d:后台运行容器。
  • --name mysql:容器名称。
  • -p 3306:3306:将宿主机的 3306 端口映射到容器的 3306 端口。
  • -e MYSQL_ROOT_PASSWORD:设置 MySQL root 用户的密码(必填)。
  • -v:将容器内的 /var/lib/mysql 目录挂载到宿主机,确保数据持久化。
  • --character-set-server--collation-server:配置字符集和排序规则(可选)。
  • --restart:mysql重启策略。
    • no:不自动重启容器(默认值)。

    • always:容器无论退出状态如何都会自动重启。

    • unless-stopped:容器除非被手动停止,否则会自动重启。

    • on-failure:仅当容器因错误退出时才重启,你还可以设置最大重启次数(例如 on-failure:5)。

      # 由于运行时没有设置mysql的启动策略,这里需要更新重启策略配置
      docker update --restart unless-stopped mysql
      # 查看重启策略
      docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' mysql
      

9. 验证容器运行状态

docker ps -a | grep mysql   # 检查状态是否为Up
docker logs mysql           # 查看启动日志,确认无报错

10. 容器开启、关闭、重启

docker start mysql   # 开启
docker stop mysql    # 关闭
docker restart mysql # 重启

11. 检查挂载内容

  • 数据持久化/root/docker/mysql/data 会保存所有数据库文件。
  • 配置生效:进入容器检查配置:
    docker exec -it mysql bash
    cat /etc/mysql/conf.d/my.cnf
    
  • 初始化脚本:首次启动后,/root/docker/mysql/init中的脚本会自动执行。
  • 日志文件:在 /root/docker/mysql/logs 下查看 error.log 等日志。

常见问题解决

  • 权限拒绝:确保挂载目录权限正确(尤其 datalogs)。
  • 配置不生效:检查配置文件路径是否为 /etc/mysql/conf.d
  • 日志未生成:确认 my.cnf 中的日志路径与挂载路径一致。

通过以上步骤,MySQL 8.0.25容器将实现数据、配置、脚本和日志的完整挂载,确保持久化和可维护性。

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

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

相关文章

【云馨AI-大模型】自动化部署Dify 1.1.2,无需科学上网,Linux环境轻松实现,附Docker离线安装等

Dify介绍 官网:https://dify.ai/zh生成式 AI 应用创新引擎开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。 Dify安装脚本 目录创建 mkdir -p /data/yunxinai &&a…

人工智能和量子时代的网络安全

在不断发展的网络安全领域,人工智能和量子技术正在迅速改变游戏规则。它们的潜力有望极大地改变政府和组织保护、防御和发展系统以应对不断发展的网络威胁的方式。 人工智能 (AI) 在检测和缓解网络威胁方面表现出了巨大的潜力。人工智能算法可以快速分析大量数据、…

前端样式库推广——TailwindCss

官方网址: https://tailwindcss.com/docs/installation/using-vite 中文官方文档:https://www.tailwindcss.cn/ github地址:tailwindcss 正在使用tailwindcss的网站:https://tailwindcss.com/showcase 一看github,竟然…

《基于深度学习的指纹识别智能门禁系统》开题报告

个人主页:大数据蟒行探索者 1研究背景 1.1开发目的和意义 指纹识别作为生物特征识别领域的一项重要技术,在安全认证、犯罪侦查和个人身份验证等方面具有广泛应用前景。随着深度学习技术的迅猛发展,基于深度学习的指纹识别系统成为了当前研究…

WSL Linux 子系统download

WSL各Linux 子系统下载 WSL Linux 最新下载 微软应用商店 | Microsoft StoreWSL Linux 历史版下载复制应用商店Linux地址到转换下载地址https://store.rg-adguard.net/ Version百度网盘离线下载OracleLinux提取

Java替换jar包中class文件

在更新java应用版本的运维工作中,由于一些原因,开发没办法给到完整的jar包,这个时候,就可以只将修改后的某个Java类的class文件替换掉原来iar包中的class文件,重新启动服务即可: 1、将jar包和将要替换的cl…

23种设计模式-创建型模式-抽象工厂

文章目录 简介场景问题1. 风格一致性失控2. 对象创建硬编码3. 产品族管理失效 解决总结 简介 抽象工厂是一种创建型设计模式,可以生成相关对象系列,而无需指定它们的具体类。 场景 假设你正在写一个家具店模拟器。 你的代码这些类组成: 相…

修改服务器windows远程桌面默认端口号

修改服务器windows远程桌面默认端口号 在Windows服务器上修改远程桌面协议(RDP)的默认端口(3389)可以增强服务器的安全性,减少被恶意扫描和攻击的风险。以下是修改远程端口的详细步骤: 按 Win R 打开运行…

【MySQL】 基本查询(上)

欢迎拜访:-CSDN博客 本篇主题:【MySQL】 基本查询(上) 发布时间:2025.2.14 隶属专栏:MySQL CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 目录 Create 基本知识…

Vue3(自定义指令directive详解)

文章目录 前言一、自定义指令的生命周期钩子二、自定义指令的创建与注册使用三、扩展 简化形式​总结 前言 在Vue3中,自定义指令是一种强大的工具,允许开发者扩展和增强HTML元素的功能。以下是对Vue3中自定义指令的详细解析: 一、自定义指令…

进制转换(R转十)(1290. 二进制转换十进制、1292. 十六进制转十进制、1291. 八进制转十进制、1405. 小丽找潜在的素数)

题单地址:题单中心-东方博宜OJ 这里以二进制转十进制为例(按位加权求和法) 1290. 二进制转换十进制 问题描述 请将一个 25 位以内的 2 进制正整数转换为 1010 进制! 输入 一个 25 位以内的二进制正整数。 输出 该数对应的…

个人博客系统 --- 测试报告

一、项目功能介绍 该项目由:登录模块、博客首页模块、博客详情页模块、博客编辑页模块四个功能模块组成。 该系统实现了个人博客的保存以及记录了发布日期、时间、发布人等信息。 二、测试内容与测试用例 我们需要对该系统进行功能测试,界面测试&…

从入门到精通【MySQL】 CRUD

文章目录 📕1. Create 新增✏️1.1 单行数据全列插入✏️1.2 单行数据指定列插入✏️1.3 多行数据指定列插入 📕2. Retrieve 检索✏️2.1 全列查询✏️2.2 指定列查询✏️2.3 查询字段为表达式✏️2.4 为查询结果指定别名✏️2.5 结果去重查询 &#x1f…

C++ 继承

目录 一、继承的概念与定义 1.1 继承的概念 1.2 继承的定义 1.2.1 语法 1.2.2 继承关系和访问限定符 1.2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、C11 final 六、继承与友元 七、继承与静态成…

Python及PyCharm配置教程:从零开始搭建开发环境

引言 Python作为一门简单易学、功能强大的编程语言,近年来在数据分析、人工智能、Web开发等领域得到了广泛应用。而PyCharm作为一款专为Python开发者设计的集成开发环境(IDE),提供了丰富的功能和工具,能够极大地提高开…

python网络爬虫开发实战之网页数据的解析提取

目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…

【AI】Orin Nano+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功

1、准备工作 使用 sdk-manager 烧写 OrinNano, JetPack版本为6.0 DP,对应操作系统为:Ubuntu22.04 参见博客:【NVIDIA】Jetson Orin Nano系列:烧写Ubuntu22.04 2、安装 PyTorch 2.1 下载依赖 1)安装onnx pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/sim…

在coze工作流中将数据回写到飞书表格

在coze工作流中将数据回写到飞书表格

datawhale组队学习-大语言模型-task5:主流模型架构及新型架构

目录 5.3 主流架构 5.3.1 编码器-解码器架构 5.3.2 因果解码器架构 5.3.3 前缀解码器架构 5.4 长上下文模型 5.4.1 扩展位置编码 5.4.2 调整上下文窗口 5.4.3 长文本数据 5.5 新型模型架构 5.5.1 参数化状态空间模型 5.5.2 状态空间模型变种 5.3 主流架构 在预训…

stc8g1k08a+cd4017红绿灯

2,4脚供电,567脚控制三个灯,另外三只脚控制cd4017脉冲输入,复位清零和数码管共阴极 数字只能显示一位0-9 hex文件 蓝奏云 main.c sfr p5 0xc8;//p5端口寄存器 sfr P5M1 0xc9;//p5端口m1配置寄存器 sfr P5M0 0xca;//p5端口m0配置寄存器 sbit p54 p5^4;//p5.4端口 sbit p5…