docker 安装 mysql 详解

news2025/1/22 19:43:22

        在平常的开发工作中,我们经常需要用到 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/mysql

init_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.33
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      TZ: Asia/Shanghai
      
    ports:
      - "3306:3306"
      
    volumes:
      - /docker/mysql/log:/var/log/mysql
      - /docker/mysql/data:/var/lib/mysql 
      - /docker/mysql/conf:/etc/mysql/conf.d
      
    command:
      --max_connections=1000
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
	  
	privileged: true
    network_mode: "host"

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

        4:测试

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

                        

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

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

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

相关文章

no persistent volumes available for this claim and no storage class is set

目录标题 问题1问题描述**问题原因****解决步骤****1. 检查 PVC 的配置****2. 设置 StorageClass****创建默认 StorageClass****修改 PVC 的 StorageClass** **3. 创建匹配的 PV****4. 验证 PVC 是否绑定成功** **最佳实践** 问题2问题描述**问题原因****解决方案****1. 删除现…

2024微短剧行业生态洞察报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p39072 本报告合集洞察从多个维度全面解读微短剧行业。在行业发展层面,市场规模与用户规模双增长,创造大量高收入就业岗位并带动产业链升级。内容创作上,精品化、品牌化趋势凸显,题材走…

【22】Word:小李-高新技术企业政策❗

目录 题目​ NO1.2 NO3 NO4 NO5.6 NO7.8 NO9.10 若文章中存在删除空白行等要求,可以到最后来完成。注意最后一定要检查此部分!注意:大多是和事例一样即可,不用一摸一样,但也不要差太多。 题目 NO1.2 F12Fn&a…

SQLmap 自动注入 -02

1: 如果想获得SQL 数据库的信息,可以加入参数: -dbs sqlmap -u "http://192.168.56.133/mutillidae/index.php?pageuser-info.php&usernamexiaosheng&passwordabc&user-info-php-submit-buttonViewAccountDetails" --batch -p username -dbs…

视频m3u8形式播放 -- python and html

hls hls官网地址 创建项目 ts为视频片段 m3u8文件内容 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" …

C#中的语句

C#提供了各式各样的语句&#xff0c;大多数是由C和C发展而来&#xff0c;当然&#xff0c;在C#中做了相应修改。语句和表达式一样&#xff0c;都是C#程序的基本组成部分&#xff0c;在本文我们来一起学习C#语句。 1.语句 语句是构造所有C#程序的过程构造块。在语句中可以声明…

【2024年CSDN平台总结:新生与成长之路】

&#x1f4ab;引言 2024年已经过去&#xff0c;回顾这一年&#xff0c;所有的经历依然历历在目。以“经验”为动力&#xff0c;我正迈向2025年。回顾自己在CSDN平台上的创作之路&#xff0c;收获满满、成长颇多&#xff0c;也有许多宝贵的感悟。接下来&#xff0c;我将分享这一…

架构思考与实践:从通用到场景的转变

在当今复杂多变的商业环境中&#xff0c;企业架构的设计与优化成为了一个关键议题。本文通过一系列随笔&#xff0c;探讨了业务架构的价值、从通用架构到场景架构的转变、恰如其分的架构设计以及如何避免盲目低效等问题。通过对多个实际案例的分析&#xff0c;笔者揭示了架构设…

AG32 FPGA 的 Block RAM 资源:M9K 使用

1. 概述 AG32 FPGA 包含了 4 个 M9K 块&#xff0c;每个 M9K 块的容量为 8192 bits&#xff0c;总计为 4 个 M9K&#xff08;4K bytes&#xff09;。这使得 AG32 的内部存储非常适合嵌入式应用&#xff0c;能够有效地利用片上资源。 M9K 参数 参考自《AGRV2K_Rev2.0.pdf》。…

Java中如何安全地停止线程?

大家好&#xff0c;我是锋哥。今天分享关于【Java中如何安全地停止线程?】面试题。希望对大家有帮助&#xff1b; Java中如何安全地停止线程? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在Java中&#xff0c;安全地停止线程是一项重要的任务&#xff0c;尤其…

2025寒假备战蓝桥杯01---朴素二分查找的学习

文章目录 1.暴力方法的引入2.暴力解法的思考 与改进3.朴素二分查找的引入4.朴素二分查找的流程5.朴素二分查找的细节6.朴素二分查找的题目 1.暴力方法的引入 对于下面的这个有序的数据元素的组合&#xff0c;我们的暴力解法就是挨个进行遍历操作&#xff0c;一直找到和我们的这…

【HF设计模式】06-命令模式

声明&#xff1a;仅为个人学习总结&#xff0c;还请批判性查看&#xff0c;如有不同观点&#xff0c;欢迎交流。 摘要 《Head First设计模式》第6章笔记&#xff1a;结合示例应用和代码&#xff0c;介绍命令模式&#xff0c;包括遇到的问题、采用的解决方案、遵循的 OO 原则、…

Ubuntu16.04 安装OpenCV4.5.4 避坑

Ubuntu16.04 安装C版OpenCV4.5.4 Ubuntu16.04 VSCode下cmakeclanglldb调试c 文章目录 Ubuntu16.04 安装C版OpenCV4.5.41. 下载Opencv压缩包2. 安装Opencv-4.5.43. 配置OpenCV的编译环境4.测试是否安装成功 1. 下载Opencv压缩包 下载Opencv压缩包&#xff0c;选择source版本。…

Flutter 改完安卓 applicationId 后App 闪退问题。

一、问题 当我们项目创建完&#xff0c;想 build.gradle 改 applicationId 的时候&#xff0c;再次执行的时候可能会出现 app 闪退问题&#xff0c; 控制台不显示任何错误提示 也不出现 Exit 停止运行的情况。&#xff08;像下方这样&#xff0c; 而 app 只是在模拟器中一闪而…

专利申请流程详解

专利申请流程详解 文章目录 专利申请流程详解前言一、什么是专利二、如何申请专利1. 注册国家知识产权局账号2. 账号登录和认证3. 专利费用减免4. 专利申请 三、注意事项&#xff08;一&#xff09;、外观设计专利&#xff08;二&#xff09;、实用新型专利&#xff08;三&…

使用缓存保存验证码进行登录校验

在Spring Boot项目中使用Redis进行登录校验&#xff0c;一般的做法是将用户的登录状态&#xff08;例如&#xff0c;JWT令牌或者用户信息&#xff09;存储在Redis中&#xff0c;并在后续请求中进行校验。 我们需要建立两个拦截器&#xff1a;RefreshTokenInterceptor LoginIn…

会议签到系统的架构和实现

会议签到系统的架构和实现 摘要:通过定制安卓会议机开机APP呈现签到界面&#xff0c;并且通过W/B结构采集管理签到信息&#xff0c;实现会议签到的功能。为达到此目标本文将探讨使用Redis提供后台数据支持&#xff1b;使用SocketIo处理适时消息&#xff1b;使用Flask进行原型开…

通过Ukey或者OTP动态口令实现windows安全登录

通过 安当SLA&#xff08;System Login Agent&#xff09;实现Windows安全登录认证&#xff0c;是一种基于双因素认证&#xff08;2FA&#xff09;的解决方案&#xff0c;旨在提升 Windows 系统的登录安全性。以下是详细的实现方法和步骤&#xff1a; 1. 安当SLA的核心功能 安…

.Net Core微服务入门系列(一)——项目搭建

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

Ubuntu 24.04 LTS 安装 Docker Desktop

Docker 简介 Docker 简介和安装Ubuntu上学习使用Docker的详细入门教程Docker 快速入门Ubuntu版&#xff08;1h速通&#xff09; Docker 安装 参考 How to Install Docker on Ubuntu 24.04: Step-by-Step Guide。 更新系统和安装依赖 在终端中运行以下命令以确保系统更新并…