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

Docker环境下MySQL数据库持久化部署全攻略

概述

在当今的软件开发领域,Docker容器技术已经成为应用部署和管理的新标准。它不仅简化了应用的部署流程,还为数据管理提供了灵活的解决方案。特别是在涉及到MySQL数据库时,数据持久化是一个不可忽视的重要环节。本文将分享如何在Docker中部署MySQL数据库,并确保数据的持久化。

部署前的准备

安装Docker

在开始部署之前,请确保您的系统中已经安装了Docker。您可以访问Docker的官方网站,下载并安装适合您操作系统的Docker版本。

创建存储目录

在宿主机上,您需要创建几个目录来存储MySQL的数据、日志和配置文件。例如:

mkdir -p /data/mysql/{data,logs,conf}

拉取MySQL镜像

通过Docker Hub,您可以拉取MySQL的官方镜像。使用以下命令:

docker pull mysql:latest

如果您需要特定版本的MySQL,可以指定版本号,例如:

docker pull mysql:5.7

配置MySQL

/data/mysql/conf目录下,创建一个名为my.cnf的配置文件,用于设置MySQL的字符集、排序规则等参数:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
datadir=/var/lib/mysql
log-error=/var/log/mysqld.log

启动MySQL容器

使用以下命令启动MySQL容器,并将其宿主机目录挂载到容器内部:

docker run -d \--name mysql-server \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=your_password \-v /data/mysql/data:/var/lib/mysql \-v /data/mysql/logs:/var/log/mysqld \-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \mysql:latest

参数说明:

  • -d:后台运行容器。
  • --name:指定容器名称。
  • -p:将容器的3306端口映射到宿主机的3306端口。
  • -e:设置环境变量,例如root用户的密码。
  • -v:将宿主机目录挂载到容器内部。

检查容器状态

您可以使用以下命令来检查容器的状态:

docker ps

或者查看容器的详细日志:

docker logs mysql-server

连接到数据库

使用命令行工具或图形化工具(如DBeaver)连接到MySQL数据库。例如,使用命令行连接:

docker exec -it mysql-server mysql -uroot -p

输入密码后,您将进入MySQL的命令行界面。

数据持久化

通过将宿主机目录挂载到容器内部,我们已经实现了数据持久化。即使容器被删除,数据仍然保存在宿主机上。您可以通过以下命令重新启动容器,数据不会丢失:

docker start mysql-server

高级配置与优化

使用Docker Compose

对于更复杂的应用,可以使用Docker Compose进行多容器管理。创建docker-compose.yml文件:

version: '3'
services:mysql:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: your_passwordvolumes:- /data/mysql/data:/var/lib/mysql- /data/mysql/logs:/var/log/mysqld- /data/mysql/conf/my.cnf:/etc/mysql/my.cnfports:- "3306:3306"

启动服务:

docker-compose up -d

定期备份

定期备份数据是确保数据安全的重要措施。您可以使用以下命令备份数据:

docker exec mysql-server sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path/to/backup.sql

权限管理

确保数据库的权限管理得当,避免不必要的权限暴露。例如,创建一个具有特定权限的用户:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'newuser'@'%';

数据加密和完整性

对于敏感数据,考虑使用数据加密和完整性校验机制,以确保数据的安全性。

总结

通过上述步骤,我们已经成功在Docker中部署了MySQL数据库,并实现了数据的持久化。Docker不仅简化了数据库的部署过程,还提供了灵活的数据管理方案。结合Docker Compose和定期备份等高级配置,可以进一步提升数据的安全性和可靠性。

相关文章:

Docker环境下MySQL数据库持久化部署全攻略

概述 在当今的软件开发领域,Docker容器技术已经成为应用部署和管理的新标准。它不仅简化了应用的部署流程,还为数据管理提供了灵活的解决方案。特别是在涉及到MySQL数据库时,数据持久化是一个不可忽视的重要环节。本文将分享如何在Docker中部…...

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复: 2、说明: 1)如果小伙伴们经常做android开发的话,这个不陌生,因为调试都是要开启这个开发者模式。并启用USB调试模式。 2)需要连上USB线,有的时候会忘记,然…...

react中使用ResizeObserver来观察元素的size变化

在 React 中使用 ResizeObserver 来观察元素的大小变化,可以通过创建一个自定义 Hook 来封装 ResizeObserver 的逻辑,并在组件中使用这个 Hook。以下是一个完整的示例,展示了如何在 React 中使用 ResizeObserver 来观察元素的大小变化。 自定…...

Linux快速入门-Linux文件系统管理

Linux文件系统管理 1. Linux文件系统概述1.1 文件系统概念1.2 用户权限差异1.3 文件命名规范 2. Linux文件系统分类及特点2.1 ext2(第二扩展文件系统)2.2 ext3(第三扩展文件系统)2.3 ext4(第四扩展文件系统&#xff09…...

漏洞检测工具:Swagger UI敏感信息泄露

Swagger UI敏感信息泄露 漏洞定义 Swagger UI是一个交互式的、可视化的RESTful API文档工具,它允许开发人员快速浏览、测试API接口。Swagger UI通过读取由Swagger(也称为OpenAPI)规范定义的API描述文件(如swagger.json或swagger…...

VSCode如何修改默认扩展路径和用户文件夹目录到D盘

在使用Visual Studio Code(VSCode)时,随着安装的扩展和用户数据的增多,C盘的空间可能会逐渐紧张。为了优化存储管理,将VSCode的默认扩展路径和用户文件夹目录迁移到D盘是一个有效的解决方案。以下是详细的操作步骤&…...

【超详细实操内容】django的身份验证系统之限制用户访问的三种方式

目录 1、使用request.user.is_authenticated属性 2、装饰器login_required 3、LoginRequiredMixin类 通常情况下,网站都会对用户限制访问,例如,未登录的用户不可访问用户中心页面。Django框架中使用request.user.isauthenticated属性、装饰器loginrequired和LoginRequire…...

AI芯片常见概念

文章目录 AI芯片常见概念前言常见概念AI芯片分类按照芯片的技术架构分GPU半定制化的 FPGA全定制化 ASIC神经拟态芯片 按应用场景分训练卡推理卡 按部署位置分国产AI卡资料汇总 AI芯片算力和能效比AI芯片算力AI芯片能效比 封装相关Chiplet技术3DIC三星多芯片集成联盟&#xff08…...

Linux 中 epoll 的详解

Linux 中 epoll 的详解 epoll 是 Linux 内核提供的一种高效的 I/O 多路复用机制,用于监控大量文件描述符的 I/O 事件。相较于传统的 select 和 poll,epoll 在高并发和大规模网络编程场景下表现出色,特别适合需要处理成千上万个文件描述符的应…...

增加nginx配置文件(conf.d), 管理多个项目

1.切换到nginx目录下, 新建conf.d文件夹 mkdir conf.d 2.赋予conf.d权限 chmod 777 conf.d 3.进入conf.d, 编辑conf文件 vim zc_travel.conf server { listen 13101; server_name localhost;location / {root /home/baoxin/app/web/insight-radar-rcfx-pre/html_dev;index …...

PostgreSQL编译安装教程

下载安装 1.在家目录创建一个文件夹放下载安装包 mkdir softwarecd software 2.下载文件压缩包 wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz 3.解压 tar -xzvf postgresql-16.0.tar.gz 4.编译 在software/postgresql-16.0下 cd software…...

【提审】Android包提审报权限问题

问题:华为应用市场审核不通过 平台审核检测详情: 日志: 自检工具:frida-server【Unity&Android】安卓app自测应用隐私相关获取和申请权限_apk 隐私合规 自测-CSDN博客 参考资料:Unity启动时获取了android_id等设…...

xdoj 数字个数统计

1-2 数字个数统计 2 时间限制&#xff1a; 1S 题目描述&#xff1a; 一个正整数 n&#xff08;1<n<1000)&#xff0c;在区间[n,n2 ]&#xff08;含端点&#xff09;内统计奇数个数、 偶数个数、能被 4 整除且不能被 3 整除的数字个数&#xff0c;并求出各统计数字两两…...

空天地遥感数据识别与计算--数据分析如何助力农林牧渔、城市发展、地质灾害监测等行业革新

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…...

Git:查看分支、创建分支、合并分支

一、查看分支 查看的git命令如下&#xff1a; git branch # 列出本地已经存在的分支&#xff0c;并且当前分支会用*标记 git branch -r # 查看远程版本库的分支列表 git branch -a # 查看所有分支列表&#xff08;包括本地和远程&#xff0c;remotes/开头的表示远程分支&…...

联合目标检测与图像分类提升数据不平衡场景下的准确率

联合目标检测与图像分类提升数据不平衡场景下的准确率 在一些数据不平衡的场景下&#xff0c;使用单一的目标检测模型很难达到99%的准确率。为了优化这一问题&#xff0c;适当将其拆解为目标检测模型和图像分类模型的组合&#xff0c;可以更有效地控制最终效果&#xff0c;尤其…...

Git的简介

文章目录 一.Git是什么二.核心概念三.工作流程四.Git的优势 下载Git 推荐官网下载 官网地址 一.Git是什么 Git是一个分布式版本控制系统&#xff0c;用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器&#xff0c;能够记录文件在不同时间点的状态&…...

麒麟操作系统服务架构保姆级教程(四)NGINX中间件

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 想要在网页上访问到代码那么就需要用到应用服务类中间件&#xff0c;国外的有Nginx&#xff0c;Tomcat等&#xff0c;国内的有金蝶web&#xff0c;东方通的服务中间件&#xff08;Tongweb&#xff0…...

Glide 自定义圆角、铺满FitXY

在 Android 开发中&#xff0c;使用 Glide 来加载图片时&#xff0c;有时需要对图片进行特定的处理&#xff0c;比如设置圆角或者使图片完全填充到一个视图中&#xff08;类似于 ImageView 的 scaleType 中的 FitXY&#xff09;。以下是如何使用 Glide 来实现这些自定义需求的处…...

蓝牙协议——音乐启停控制

手机播放音乐 手机暂停音乐 耳机播放音乐 耳机暂停音乐...

Midscene.js:AI视觉驱动自动化,三分钟告别重复浏览器操作

Midscene.js&#xff1a;AI视觉驱动自动化&#xff0c;三分钟告别重复浏览器操作 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 你是否还在为每天重复的浏览器操…...

5步快速上手AntiDupl:彻底告别重复图片困扰的智能解决方案

5步快速上手AntiDupl&#xff1a;彻底告别重复图片困扰的智能解决方案 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾经花费数小时在数千张照片中寻找重复文件…...

燃料电池热管理控制,接受定制,单循环,双循环定制,效率

代码逻辑分析 数据构建&#xff1a;由于没有原始数据&#xff0c;代码中通过分段函数模拟了图中的趋势&#xff1a; 0-600s&#xff1a;保持为 0。 600-700s&#xff1a;出现一个向下的尖峰&#xff08;约 -0.4&#xff09;&#xff0c;随后迅速反弹至 0.2。 700-1100s&#xf…...

“支持向量”不等于“真AI原生”:2026奇点大会技术委员会揭幕5层认证标准(含3项未公开专利检测项)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AI原生数据库选型 2026奇点智能技术大会(https://ml-summit.org) AI原生数据库正从概念验证迈向生产级部署的关键拐点。在2026奇点智能技术大会上&#xff0c;主流厂商与开源社区共同展示了面向大模型训练缓存、推理状态管…...

Xilinx HDMI 1.4/2.0 Transmitter IP实战:从零配置4K视频输出的关键步骤

Xilinx HDMI IP核实战&#xff1a;4K视频输出配置全流程与避坑指南 在当今超高清视频应用爆发的时代&#xff0c;FPGA作为灵活的视频处理平台&#xff0c;其HDMI输出能力成为开发者必须掌握的硬核技能。Xilinx的HDMI 1.4/2.0 Transmitter Subsystem IP核作为实现4K60Hz输出的关…...

金融行情API对接指南:WebSocket实时订阅外汇/期货/数字货币(附代码示例)

引言在量化交易或金融看盘软件开发中&#xff0c;获取低延迟的实时行情&#xff08;Tick级数据&#xff09;是核心环节。传统的HTTP轮询不仅效率低&#xff0c;且容易触发风控。目前主流方案是采用WebSocket协议实现全双工通信&#xff0c;服务端主动推送&#xff0c;极大降低资…...

S2-Pro数据库智能应用:基于自然语言的SQL生成与数据洞察

S2-Pro数据库智能应用&#xff1a;基于自然语言的SQL生成与数据洞察 1. 让数据库说人话的时代来了 "帮我查一下上个月销售额超过10万的产品有哪些&#xff1f;"——这样的需求&#xff0c;过去需要数据分析师写复杂的SQL查询语句&#xff0c;现在只需要对着S2-Pro说…...

【个人思考】“女强人、都市丽人、超级女孩:三种女性叙事,三种人生剧本”

本文原创作者&#xff1a;姚瑞南 AI-agent 大模型运营专家/音乐人/野生穿搭model&#xff0c;先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗&#xff1b;多年人工智能行业智能产品运营及大模型落地经验&#xff0c;拥有AI外呼方向国家专利与PMP项目管理证书。&#…...

【曼博解析】Polysciences 24765 vs 23966:明星PEI转染试剂对比指南

24765 vs 23966&#xff1a;Polysciences PEI MAX与PEI 25K转染试剂&#xff0c;谁才是细胞转染真神&#xff1f; 摘要&#xff1a;从化学结构&#xff08;线性vs分支状&#xff09;、分子量大小、到应用场景&#xff08;病毒包装vs蛋白表达&#xff09;以及细胞毒性&#xff…...

Xinference-v1.17.1在嵌入式开发中的应用:基于Keil5的AI模型部署

Xinference-v1.17.1在嵌入式开发中的应用&#xff1a;基于Keil5的AI模型部署 1. 引言 嵌入式设备越来越需要AI能力&#xff0c;但传统方法往往受限于计算资源和内存大小。Xinference-v1.17.1作为一个高效的AI推理框架&#xff0c;为嵌入式开发带来了新的可能。通过Keil5这样的…...