docker安装mysql数据库挂载文件

  • 拉取镜像
    • docker pull mysql:8.0.19
  • 观察镜像里的配置文件目录结构
    • docker run --rm -it docker.io/mysql:8.0.19 /bin/bash
    • ls 查看目录
  • 创建挂载文件(把MySQL配置文件以及数据库文件挂载到容器外,即宿主机路径下)
    • 在/opt/docker/mysql路径下创建conf以及data两个文件
    • cd /opt/docker/mysql/conf
    • 创建文件touch my.cnf
    • 修改文件内容
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections=10000
default-time_zone='+8:00'
character-set-client-handshake=FALSE
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
# Custom config should go here
!includedir /etc/mysql/conf.d/
  • MySQL8.0版本必须配置secure_file_priv,不然启动状态为Exited(1),通过docker logs -f -t --tail 70 mysql8.0查看日志命令,会发现相关的报错提示
  • 同时,假如需要用工具(比如Navicat)连接数据库,需要配置Navicat的密码规则default_authentication_plugin=mysql_native_password,不然也会以下报错
  • 最后执行启动命令
    • docker run -p 3306:3306 --restart=always --privileged=true --name mysql -v /opt/docker/mysql/conf:/etc/mysql/conf.d -v /opt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456! -d mysql:8.0.19
    • docker run -p 3306:3306 \
      --privileged=true --name mysql \
      -v /opt/docker/mysql/conf:/etc/mysql/conf.d \
      -v /opt/docker/mysql/data:/var/lib/mysql \
      -v /opt/docker/mysql/logs:/var/log \
      -e MYSQL_ROOT_PASSWORD=123456! \
      -d mysql:8.0.19

       

    • -p 端口映射,格式为:主机(宿主)端口:容器端口

      –restart=always 设置随服务启动而启动容器

      –name 命名容器名称

      -v 设置挂载点,格式为:主机(宿主)目录:容器目录

      -e 设置环境变量

      -d 后台运行容器,并返回容器ID

      –privileged=true 使用该参数,container内的root拥有真正的root权限

      对于已经运行但没设置随docker服务的启动而启动容器的可以执行命令 docker update –restart=always 容器名

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼大虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值