在 Ubuntu 下通过 Docker 部署 MySQL 服务器

引言

Docker 是一个开源的容器化平台,允许开发者将应用及其依赖打包成一个标准化的单元。MySQL 是一个广泛使用的关系型数据库管理系统,因其高性能、可靠性和易用性,成为许多应用的首选数据库。结合 Docker 和 MySQL,可以轻松地创建、管理和扩展数据库实例,提升开发效率。

在 Alpine Linux 下通过 Docker 部署 MySQL 服务器

步骤 1: 安装 Docker

首先,确保你的系统上已安装 Docker。可以使用以下命令安装 Docker:

bash

复制

sudo apt update
sudo apt install docker.io

启动 Docker 服务并设置为开机自启:

bash

复制

sudo systemctl start docker
sudo systemctl enable docker

步骤 2: 拉取 MySQL 镜像

接下来,拉取官方的 MySQL 镜像:

bash

复制

sudo docker pull mysql:latest

步骤 3: 创建 MySQL 配置文件

在本地创建一个目录来存放 MySQL 的配置文件和数据:

bash

复制

mkdir -p ~/mysql-data

然后,创建一个 my.cnf 配置文件:

nano ~/mysql-data/my.cnf

在文件中添加以下内容:

[mysqld]
bind-address = 0.0.0.0
character-set-server = utf8mb4

步骤 4: 启动 MySQL 容器

使用以下命令启动 MySQL 容器:

sudo docker run --name my-mysql -v ~/mysql-data:/var/lib/mysql -v ~/mysql-data/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql:latest
参数说明:
  • --name my-mysql: 指定容器名称为 my-mysql
  • -v ~/mysql-data:/var/lib/mysql: 将本地目录挂载到容器的 MySQL 数据目录。
  • -v ~/mysql-data/my.cnf:/etc/mysql/my.cnf: 将本地配置文件挂载到容器中。
  • -e MYSQL_ROOT_PASSWORD=yourpassword: 设置 MySQL 的 root 用户密码。
  • -d: 以后台模式运行容器。

步骤 5: 验证安装

使用以下命令检查 MySQL 容器的状态:

sudo docker ps

如果容器正常运行,可以通过以下命令进入 MySQL:

sudo docker exec -it my-mysql mysql -u root -p

输入你在步骤 4 中设置的 root 密码。

结论

通过以上步骤,你已经成功在 Ubuntu 下通过 Docker 部署了 MySQL 服务器。现在,你可以开始使用 MySQL 数据库,尽情享受这个灵活、高效的数据库系统带来的便利。记得保持你的容器更新,保持安全!💻✨

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

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

相关文章

有机物谱图信息的速查技巧有哪些?

谱图信息是化学家解读分子世界的“语言”,它们在化学研究的各个领域都发挥着不可或缺的作用。它们是理解和确定分子结构的关键,对化学家来说极为重要,每一种谱学技术都提供了不同的视角来观察分子,从而揭示其独特的化学和物理特性…

视频转码对画质有影响吗?视频融合平台EasyCVR支持哪些转码格式?

视频转码过程是将视频文件从一种编码格式转换为另一种格式的过程,这一过程在现代数字媒体中扮演着至关重要的角色。众所周知,视频转码不仅仅是简单的格式转换,它涉及多个关键参数的改变,例如视频编码格式、比特率、分辨率以及帧率…

微信小程序防止重复点击事件

直接写在app.wpy里面,全局可以调用 // 防止重复点击事件preventActive(fn) {const self this;if (this.globalData.PageActive) {this.globalData.PageActive false;if (fn) fn();setTimeout(() > {self.globalData.PageActive true;}, 3000); //设置该时间内…

STM32-WWDG/IWDG看门狗

WWDG/IWDG一旦开启不能关闭,可通过选项字节在上电时启动硬件看门狗,看门狗计数只能写入不能读取。看门狗启用时,T6bit必须置1,防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗(重置计数器,…

C++初阶—CC++内存管理

第一章:C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(si…

排序的本质、数据类型及算法选择

排序的本质、数据类型及算法选择 一、排序的本质二、排序的数据类型三、排序算法的选择依据 前两天老金写了篇 “十大排序简介”,有点意犹未尽,这一回老金想把排序连根拔起,从排序的本质说道说道。 一、排序的本质 从字面上理解&#xff0c…

arcgisPro加载天地图(CGCS2000)影像

1、注册天地图账号; 2、申请key; 3、添加WMTS服务器。 这里已经办好了前两步,下面详细介绍最后一步。 添加WMTS服务器。 在天地图网站,找到如下页面, 复制网址,如:http://t0.tianditu.gov.cn…

【测试】持续集成CI/CD

近期更新完毕,建议关注收藏点赞~ 目录 概括gitJenkinspostman集成jenkins代码集成jenkins 概括 CI/CD stands for Continuous Integration and Continuous Deployment 定义 团队成果持续集成到公共平台。一天可以集成1次or多次 本地代码管理 git 远程代…

python基础和redis

1. Map函数 2. filter函数 numbers generate_numbers() filtered_numbers filter(lambda x: x % 2 0, numbers) for _ in range(5):print(next(filtered_numbers)) # 输出: 0 2 4 6 83. filter map 和 reduce 4. picking and unpicking 5. python 没有函数的重载&#xff0…

【再谈设计模式】模板方法模式 - 算法骨架的构建者

一、引言 在软件工程、软件开发过程中,我们经常会遇到一些算法或者业务逻辑具有固定的流程步骤,但其中个别步骤的实现可能会因具体情况而有所不同的情况。模板方法设计模式(Template Method Design Pattern)就为解决这类问题提供了…

安卓app抓包总结(精)

前言 这里简单记录一下相关抓包工具证书的安装 burp证书安装 安装证书到移动设备(安卓7以后必须上传到设备系统根证书上) 导出证书 openssl x509 -inform DER -in cacert.der -out cacert.pem 转换格式 openssl x509 -inform PEM -subject_hash_old -in cacert.pem …

【pycharm发现找不到python打包工具,且无法下载】

发现找不到python打包工具,且无法下载 解决方法: 第一步:安装distutils,在CMD命令行输入: python -m ensurepip --default-pip第二步:检查和安装setuptools和wheel: python -m pip install --upgrade …

2025年VGC大众汽车科技社招入职测评综合能力英语口语SHL历年真题汇总、考情分析

早在1978年,大众汽车集团就开始了与中国的联系。1984年,集团在华的第一家合资企业—上汽大众汽车有限公司奠基成立;1991年,一汽-大众汽车有限公司成立;2017年,大众汽车(安徽)有限公司…

【NLP 18、新词发现和TF·IDF】

目录 一、新词发现 1.新词发现的衡量标准 ① 内部稳固 ② 外部多变 2.示例 ① 初始化类 NewWordDetect ② 加载语料信息,并进行统计 ③ 统计指定长度的词频及其左右邻居字符词频 ④ 计算熵 ⑤ 计算左右熵 ​编辑 ⑥ 统计词长总数 ⑦ 计算互信息 ⑧ 计算每个词…

30天开发操作系统 第 12 天 -- 定时器 v1.0

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单,只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器,CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…

图漾相机基础操作

1.客户端概述 1.1 简介 PercipioViewer是图漾基于Percipio Camport SDK开发的一款看图软件,可实时预览相机输出的深度图、彩色图、IR红外图和点云图,并保存对应数据,还支持查看设备基础信息,在线修改gain、曝光等各种调节相机成像的参数功能…

【好书推荐】数字化转型参考书籍Rewired

Rewired 封面 图片来源:https://e.dangdang.com/products/1901358558.html 如果做企业数字化转型工作,只能推荐一本书,我会推荐2024年6月中信出版社出版的Rewired 《麦肯锡讲全球企业数字化》。 果总为这本书写了一篇推荐,供大…

WPF控件Grid的布局和C1FlexGrid的多选应用

使用 Grid.Column和Grid.Row布局,将多个C1FlexGrid布局其中,使用各种事件来达到所需效果,点击复选框可以加载数据到列表,移除列表的数据,自动取消复选框等 移除复选框的要注意!!!&am…

ffmpeg7.0 合并2个 aac 文件

ffmpeg7.0 将2个aac文件合并。 #include <stdio.h>// 之所以增加__cplusplus的宏定义&#xff0c;是为了同时兼容gcc编译器和g编译器 #ifdef __cplusplus extern "C" { #endif #include <libavformat/avformat.h> #include <libavcodec/avcodec.h>…

FreePBX 17 on ubuntu24 with Asterisk 20

版本配置&#xff1a; FreePBX 17&#xff08;最新&#xff09; Asterisk 20&#xff08;最新Asterisk 22&#xff0c;但是FreePBX 17最新只支持Asterisk 21&#xff0c;但是21非LTS版本&#xff0c;所以选择Asterisk 20&#xff09; PHP 8.2 Maria DB (v10.11) Node J…