docker 安装 mysql 详解

        在平常的开发工作中,我们经常需要用到 mysql 数据库。那么在docker容器中,应该怎么安装mysql数据库呢。简单来说,第一步:拉取镜像;第二步:创建挂载目录并设置 my.conf;第三步:启动容器,第四步:测试连接。

        1:拉取镜像:docker  pull  mysql:版本

        选择合适的mysql版本,如 拉取8.0.33版本:docker  pull  mysql:8.0.33,如果拉取镜像拉取不成功,那么可以修改宿主机 Docker 的配置文件 /etc/docker/daemon.json,修改镜像加速器配置。拉取成功后,可以通过 docker images mysql 命令查看:

               

        2:创建挂载目录 并 配置 my.conf :

            1)创建挂载目录:

                  mkdir -p /docker/mysql/conf

                  mkdir -p /docker/mysql/data

                  mkdir -p /docker/mysql/log

            2)创建 my.conf 并配置内容:在 conf 文件夹 下新建 my.conf 文件,配置内容如下: 

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'# 设置密码验证规则
authentication_policy=mysql_native_password# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录
# 为NULL,禁止导入与导出功能
secure_file_priv=/var/lib/mysqlinit_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
skip-name-resolve
max_connections=1000
# lower_case_table_names=1
skip-log-bin
        3:启动容器:
        1) docker run:
docker run --name mysql-8.0.33 \-e MYSQL_ROOT_PASSWORD=your_password \-e MYSQL_CHARSET=utf8mb4 \-e MYSQL_COLLATION=utf8mb4_unicode_ci \-p 3306:3306 \-v /docker/mysql:/var/lib/mysql \-d mysql:8.0.33

       命令解释:

        a:--name mysql-8.0.33:设置容器名称
        b:-e MYSQL_ROOT_PASSWORD=your_password:设置root用户密码
        c:-e MYSQL_CHARSET=utf8mb4:为 MySQL 数据库设置字符集为 utf8mb4
        d:-e MYSQL_COLLATION=utf8mb4_unicode_ci:数据库设置排序规则为 utf8mb4_unicode_ci
        e:-p 3306:3306:-p 用于将容器内部的端口映射到主机的端口,将宿主机3306端口映射到容器3306端口
        f:-v /docker/mysql:/var/lib/mysql:v 是挂载选项,用于将主机上的目录挂载到容器内部的目录,实现数据的持久化存储。
        g:/data/mysql:/var/lib/mysql 表示将主机上的 /data/mysql 目录挂载到容器内的 /var/lib/mysql 目录,这样容器内 MySQL 数据库的数据会存储在主机的 /data/mysql 目录中,即使容器被删除,数据也不会丢失。
        h:-d mysql:8.0.33:表示以守护进程模式运行容器,即容器将在后台运行。Docker 将从 Docker Hub 或本地镜像仓库拉取该镜像,如果不存在,则会先拉取再运行。

        2)docker-compose.yml,命令 docker compose up  -d  mysql
version: '1'
services:mysql:image: mysql:8.0.33restart: alwayscontainer_name: mysqlenvironment:MYSQL_ROOT_PASSWORD: your_passwordTZ: Asia/Shanghaiports:- "3306:3306"volumes:- /docker/mysql/log:/var/log/mysql- /docker/mysql/data:/var/lib/mysql - /docker/mysql/conf:/etc/mysql/conf.dcommand:--max_connections=1000--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ciprivileged: truenetwork_mode: "host"

        启动完成后,可以使用 docker ps 命令查看当前容器启动状态,可以 使用  docker logs  容器id 或者 docker  logs  mysql 查看启动日志。

        4:测试

        使用数据连接客户端工具测试。

                        

        以上为 docker 下 部署 mysql 数据库的基本步骤。我们只有不断的学习,才能遇见更好的自己,加油,美好的风景一直在路上。

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

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

相关文章

linux-samba服务配置与应用

1.了解samba的配置文件 2.熟悉samba服务的实例 以前我们在windows上共享文件的话,只需右击要共享的文件夹,然后选择共享相关的选项设置即可,然后如何实现windows和linux的文件共享呢,这就涉及到了samba服务,这个软件…

Spring Boot 整合 Redis 步骤详解

文章目录 1. 引言2. 添加依赖3. 配置 Redis 连接信息4. 创建 Redis 操作服务类5. 使用 RedisTemplate 或 ReactiveRedisTemplate6. 测试 Redis 功能7. 注意事项8. 总结 Redis 是一个高性能的键值存储系统,常用于缓存、消息队列等多种场景。将 Redis 与 Spring Boot …

缓存商品、购物车(day07)

缓存菜品 问题说明 问题说明:用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。 结果: 系统响应慢、用户体验差 实现思路 通过Redis来缓存菜品数据,减少数据库查询…

K8S中Service详解(三)

HeadLiness类型的Service 在某些场景中,开发人员可能不想使用Service提供的负载均衡功能,而希望自己来控制负载均衡策略,针对这种情况,kubernetes提供了HeadLiness Service,这类Service不会分配Cluster IP,…

npm install 报错:Command failed: git checkout 2.2.0-c

[TOC](npm install 报错:Command failed: git checkout 2.2.0-c) npm install 报错:Command failed: git checkout 2.2.0-c export NODE_HOME/usr/local/node-v14.14.0-linux-x64 npm config set registry https://registry.npmmirror.com 使用如上环…

DDD - 微服务落地的技术实践

文章目录 Pre概述如何发挥微服务的优势怎样提供微服务接口原则微服务的拆分与防腐层的设计 去中心化的数据管理数据关联查询的难题Case 1Case 2Case 3 总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服…

通过视觉语言模型蒸馏进行 3D 形状零件分割

大家读完觉得有帮助记得关注和点赞!!!对应英文要求比较高,特此说明! Abstract This paper proposes a cross-modal distillation framework, PartDistill, which transfers 2D knowledge from vision-language models …

【大模型】ChatGPT 高效处理图片技巧使用详解

目录 一、前言 二、ChatGPT 4 图片处理介绍 2.1 ChatGPT 4 图片处理概述 2.1.1 图像识别与分类 2.1.2 图像搜索 2.1.3 图像生成 2.1.4 多模态理解 2.1.5 细粒度图像识别 2.1.6 生成式图像任务处理 2.1.7 图像与文本互动 2.2 ChatGPT 4 图片处理应用场景 三、文生图操…

从零到一:Spring Boot 与 RocketMQ 的完美集成指南

1.Rocket的概念与原理 RocketMQ 是一款由阿里巴巴开源的分布式消息中间件,最初用于支持阿里巴巴的海量业务。它基于发布-订阅模型,具备高吞吐、低延迟、高可用和强一致性的特点,适用于消息队列、大规模数据流处理等场景。以下是对 RocketMQ …

(1)STM32 USB设备开发-基础知识

开篇感谢: 【经验分享】STM32 USB相关知识扫盲 - STM32团队 ST意法半导体中文论坛 单片机学习记录_桃成蹊2.0的博客-CSDN博客 USB_不吃鱼的猫丿的博客-CSDN博客 1、USB鼠标_哔哩哔哩_bilibili usb_冰糖葫的博客-CSDN博客 USB_lqonlylove的博客-CSDN博客 USB …

没有公网IP实现seafile本地IP访问和虚拟局域网IP同时访问和上传文件

前言 Ubuntu 24.04 LTSDocker 安装 seafileOpenWrtTailscale Ubuntu 24.04 LTS 通过 docker desktop 安装 seafile 搭建个人网盘中,已经实现了本地局域网放问Ubuntu IP来访问Seafile,以及通过 Ubuntu 的 Tailscale IP 访问Seafile。但是,文…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

TCP全连接队列

1. 理解 int listen(int sockfd, int backlog) 第二个参数的作用 backlog:表示tcp全连接队列的连接个数1。 如果连接个数等于backlog1,后续连接就会失败,假设tcp连接个数为0,最大连接个数就为1,并且不accept获取连接…

windows下使用docker执行器并配置 hosts 解析

本篇目录 1. 问题背景2. 环境准备2.1 云上开通windows 2022 英文版机器2.1.1 安装 git2.1.2 安装 runner2.1.3 装docker2.1.4 注册runner并使用docker执行器 3. 项目信息3.1 编写window bat脚本3.2 项目.gitlab-ci.yml文件 4. 测试结论4.1 运行流水线 5. troubleshooting问题1&…

计算机毕业设计hadoop+spark视频推荐系统 短视频推荐系统 视频流量预测系统 短视频爬虫 视频数据分析 视频可视化 视频大数据 大数据

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

mysql的主从配置

#mysql数据库 #主从 MySQL数据库主从配置 1.MySQL主从介绍 MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主 从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。 MySQL 主从是基于 binlog 的&…

MySQL、HBase、ES的特点和区别

MySQL:关系型数据库,主要面向OLTP,支持事务,支持二级索引,支持sql,支持主从、Group Replication架构模型(本文全部以Innodb为例,不涉及别的存储引擎)。 HBase&#xff1…

前端开发中的模拟后端与MVVM架构实践[特殊字符][特殊字符][特殊字符]

平时,后端可能不能及时给接口给前端进行数据调用和读取。这时候,前端想到进行模拟后端接口。本文将介绍如何通过vite-plugin-mock插件模拟后端接口,并探讨MVVM架构在前端开发中的应用。此外,我们还将讨论Vue2与Vue3的区别&#xf…

HTML5 新表单属性详解

HTML5 为 <form> 和 <input> 标签引入了一系列新属性&#xff0c;极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作&#xff0c;还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性&#xff0c;并结合代码示例帮助大家更好地理…

SuperdEye:一款基于纯Go实现的间接系统调用执行工具

关于SuperdEye SuperdEye是一款基于纯Go实现的间接系统调用执行工具&#xff0c;该工具是TartarusGate 的修订版&#xff0c;可以利用Go来实现TartarusGate 方法进行间接系统调用。 该工具的目标是为了扫描挂钩的NTDLL并检索Syscall编号&#xff0c;然后使用它来执行间接系统调…