• 21天打卡挑战学习MySQL——《容器部署MySQL》第三周 第八篇



    活动地址:CSDN21天学习挑战赛

    在这里插入图片描述

    一、镜像准备

    mysql镜像下载地址:https://hub.docker.com/_/mysql

    这里以下载5.7.31为例

    docker pull mysql:5.7.31

    下载后可以通过命令查看

    docker images

    可以将下载好的命令保存为本地文件,方便日后使用,避免重复下载(会保存在当前目录下)

    docker save mysql:5.7.31 -o mysql.5.7.31.tar

    可以将保存的镜像文件加载

    docker load -i mysql.5.7.31.tar

    二、一个简单的实例

    运行实例

    docker run -d --name mysql --restart always
    -e MYSQL_ROOT_PASSWORD=admin
    -e TZ=Asia/Shanghai -p 3306:3306
    -v /data/mysql:/var/lib/mysql
    mysql:5.7.31
    –character-set-server=utf8
    –collation-server=utf8_general_ci

    说明:

    • name mysql 指定实例名称 “mysql” 可以根据需要更改
      restart always 容器退出时总是重启容器
      e MYSQL_ROOT_PASSWORD=admin 配置root用户的密码为 “admin”
      e TZ=Asia/Shanghai 设置容器时区为 亚洲/上海
      p 3306:3306 暴露容器的端口给主机,前面是主机端口,后面是容器端口
      v /data/mysql:/var/lib/mysql 容器卷挂载,宿主机的 “/data/mysql” 目录与容器的 “/var/lib/mysql” 挂载
      character-set-server=utf8 --collation-server=utf8_general_ci 设置默认编码格式为utf8,解决中文乱码问题

    查看mysql日志

    docker logs -f mysql

    说明:

    • f 参数持续跟踪日志变化 可以省略
    • mysql 为容器名称,根据实际名称调整

    通过shell访问容器内部

    docker exec -it mysql bash

    通过sql文件初始化数据库

    docker exec -i mysql sh -c ‘exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"’ < /data/db_backup.sql

    三、可能出现的问题

    创建mysql容器失败

    创建mysql容器成功
    docker run --name mysql
    -v /media/yoyo/w/MyDocument/Python_Test_Project/2020_08/20200825/mysql/conf:/etc/mysql/mysql.conf.d
    -v /media/yoyo/w/MyDocument/Python_Test_Project/2020_08/20200825/mysql/data:/var/lib/mysql
    -v /media/yoyo/w/MyDocument/Python_Test_Project/2020_08/20200825/mysql/logs:/logs
    -e MYSQL_ROOT_PASSWORD=123456
    -d mysql:5.7

    可能的原因:

    1. -v 映射宿主的路径太长
    2. 宿主路径权限问题
    3. 如果目录中有文件,第二次创建容器失败

    四、Docker创建进入mysql容器

    运行”docker pull mysql”获取mysql镜像

    [root@localhost ~]# docker pull mysql
    Using default tag: latest
    latest: Pulling from library/mysql
    85b1f47fba49: Pull complete
    5671503d4f93: Pull complete
    3b43b3b913cb: Pull complete
    4fbb803665d0: Pull complete
    05808866e6f9: Pull complete
    1d8c65d48cfa: Pull complete
    e189e187b2b5: Pull complete
    02d3e6011ee8: Pull complete
    d43b32d5ce04: Pull complete
    2a809168ab45: Pull complete
    Digest: sha256:1a2f9361228e9b10b4c77a651b460828514845dc7ac51735b919c2c4aec864b7
    Status: Downloaded newer image for mysql:latest

    在后台启动mysql容器(–name指定了容器的名称,方便之后进入容器的命令行,MYSQL_ROOT_PASSWORD=admin指定了mysql的root密码,-d表示在后台运行)

    Administrator@SKY-20170607FIJ MINGW64 ~
    $ docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin -d mysql
    c6215e8c1fd73bc395a0c92e93f7e7145baedbe99c7ff639ccc9f5641bddf583

    进入容器bash并进入mysql命令行:

    Administrator@SKY-20170607FIJ MINGW64 ~
    $ docker exec -it mysql bash
    root@c6215e8c1fd7:/# mysql -uroot -padmin
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 5
    Server version: 5.7.20 MySQL Community Server (GPL)
    Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
    mysql> show databases;
    ±-------------------+
    | Database |
    ±-------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    | sys |
    ±-------------------+
    4 rows in set (0.00 sec)
    mysql>

    退出mysql镜像

    exit

  • 相关阅读:
    2022年全球市场刷脸支付系统总体规模、主要企业、主要地区、产品和应用细分研究报告
    SpringBoot整合Shiro(仅测试认证)
    Windows Ubuntu子系统使用USB教程
    探讨NLP对行业大量数据信息抽取的技术实现
    软件开发原则
    如何查看一个期刊是sci几区以及影响因子 入藏号 ISSN等信息
    Java8实战-总结27
    打印字节流和字符流
    STM32的IAP讲解
    maven(1)
  • 原文地址:https://blog.csdn.net/m0_55400356/article/details/126385317