Docker 安装部署MySQL教程

前言

Docker安装MySQL镜像以及启动容器,大致都是三步:查询镜像–>拉取镜像–>启动容器

1、查询镜像

docker search mysql

在这里插入图片描述

2、拉取镜像

拉取镜像时选择stars值较高的

docker pull mysql:5.7
#这里指定拉取对应的版本Mysql5.7,没有指定的话拉取的是最新版的
docker pull mysql

3、启动容器

# 将容器的 3306 端口映射到主机的 3306 端口,这样就可以通过主机的 IP 地址和端口号访问 MySQL 服务。
# 指定容器的名称为 mysql,方便后续管理和操作
docker run -p 3306:3306 --name mysql \
# 将主机的 /home/mysql/log 目录挂载到容器的 /var/log/mysql 目录,用于存储 MySQL 的日志文件。
-v /home/mysql/log:/var/log/mysql \
# 将主机的 /home/mysql/data 目录挂载到容器的 /var/lib/mysql 目录,用于存储 MySQL 的数据文件。
-v /home/mysql/data:/var/lib/mysql \
# 将主机的 /home/mysql/conf 目录挂载到容器的 /etc/mysql 目录,用于存储 MySQL 的配置文件。
-v /home/mysql/conf:/etc/mysql \
# 将主机的 /home/mysql/mysql-files 目录挂载到容器的 /var/lib/mysql-files 目录,用于存储 MySQL 的文件数据。
-v /home/mysql/mysql-files:/var/lib/mysql-files \
# 设置 MySQL 的 root 用户密码为 root。这个参数使用了环境变量来传递密码信息。
-e MYSQL_ROOT_PASSWORD=root \
# 以后台模式运行 MySQL 容器,并使用 mysql:5.7 镜像作为容器镜像。
-d mysql:5.7 \
# 设置 MySQL 的字符集为 utf8mb4,并使用 utf8mb4_unicode_ci 排序规则。这个参数可以确保 MySQL 能够正确地处理 Unicode 字符。
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# ---命令结束,下面都是输出
# 输出的是容器的 ID,表示容器已成功启动。
ec88509b8b1b8b759747c71b75a9fc6c5c0a8ec63e1e6b7a716a6e98ccce184e

验证启动成功

docker ps -a

如果没有启动成功,查看日志

docker logs mysql

4、遇到的错误

1、挂载目录报错

2023-04-26 15:36:12+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.42-1.el7 started.
2023-04-26 15:36:12+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting  to check config
        command was: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --verbose --help --log-bin-index=/tmp/tmp.lEmtN09BMq
        mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

根据报错信息/etc/mysql/conf.d,MySQL读不到conf.d这个配置文件,既然知道问题所在就好办了。

#首先确定要挂载的目录里有没有conf.d,有的话编辑一下权限,没有的话就把conf.d文件
#复制到挂载的目录下
# 容器文件 复制到 宿主机
docker cp <容器路径> <宿主机路径>
 
# 将容器conf.d文件夹下内容复制到宿主机
docker cp mysql:/etc/mysql/conf.d /home/mysql/conf/conf.d


# 停止和删除容器
docker stop mysql && docker rm -f mysql


#再执行步骤3启动容器命令

相关推荐

  1. 使用docker安装mysql详细教程

    2024-03-15 13:22:02       30 阅读
  2. docker安装部署mysql后忘记root密码

    2024-03-15 13:22:02       36 阅读
  3. dockerdocker安装Mysql

    2024-03-15 13:22:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 13:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 13:22:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 13:22:02       82 阅读
  4. Python语言-面向对象

    2024-03-15 13:22:02       91 阅读

热门阅读

  1. 基于Python的pygame库的五子棋游戏

    2024-03-15 13:22:02       30 阅读
  2. 大数据开发(Kafka面试真题-卷三)

    2024-03-15 13:22:02       41 阅读
  3. iOS runtime理解和应用场景

    2024-03-15 13:22:02       40 阅读
  4. python 读取pdf 将每页转成jpg

    2024-03-15 13:22:02       44 阅读
  5. C#使用Entity Framework Core处理数据库(一)

    2024-03-15 13:22:02       41 阅读
  6. 【趣味学算法】07_爱因斯坦的数学题

    2024-03-15 13:22:02       39 阅读
  7. C++ 纯虚函数定义语法,及作用

    2024-03-15 13:22:02       43 阅读
  8. 【设计模式】常见设计模式

    2024-03-15 13:22:02       33 阅读
  9. 【笔记】学习Android.mk(三)

    2024-03-15 13:22:02       38 阅读