• docker 安装 mysql (单体架构)


    文章归档:https://www.yuque.com/u27599042/coding_star/nckzqa73g47hgz3x

    查询 MySQL 镜像

    docker search mysql
    
    • 1

    拉取 MySQL 镜像

    docker pull mysql
    
    • 1

    在宿主机创建映射目录

    mkdir -p \
    /home/docker/mysql/log \
    /home/docker/mysql/data \
    /home/docker/mysql/conf \
    /home/docker/mysql/mysql-files
    
    • 1
    • 2
    • 3
    • 4
    • 5

    先随便新建一个 MySQL 容器

    docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
    
    • 1

    复制容器中的配置文件到宿主机的 MySQL 配置文件映射目录

    docker cp mysql:/etc/mysql /home/docker/mysql/conf/
    
    • 1

    将 /home/docker/mysql/conf/mysql/ 目录下的文件和目录移动到 /home/docker/mysql/conf/ 目录下

    mv /home/docker/mysql/conf/mysql/* /home/docker/mysql/conf/
    
    • 1

    删除 /home/docker/mysql/conf/mysql 目录

    rm -rf /home/docker/mysql/conf/mysql
    
    • 1

    删除 mysql 容器

    docker rm -f mysql
    
    • 1

    运行 mysql 容器

    docker run \
    -p 3306:3306 \
    --name mysql \
    --restart=always \
    --privileged=true \
    -v /home/docker/mysql/conf:/etc/mysql \
    -v /home/docker/mysql/data:/var/lib/mysql \
    -v /home/docker/mysql/log:/var/log/mysql \
    -v /home/docker/mysql/mysql-files:/var/lib/mysql-files \
    -v /etc/localtime:/etc/localtime:ro \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    # 运行 docker 容器
    docker run \
    
    # 宿主机与容器端口映射
    -p 3306:3306 \
    
    # 指定运行容器的名称
    --name mysql \
    
    # docker 容器会跟随 Linux 重启而重启
    --restart=always \
    
    # 容器具有 root 权限
    --privileged=true \
    
    # mysql 容器配置文件目录映射
    -v /home/docker/mysql/conf:/etc/mysql \
    
    # mysql 容器数据文件目录映射
    -v /home/docker/mysql/data:/var/lib/mysql \
    
    # mysql 容器日志文件目录映射
    -v /home/docker/mysql/log:/var/log/mysql \
    
    # 做这个映射,为了避免有时候会报错
    -v /home/docker/mysql/mysql-files:/var/lib/mysql-files \
    
    # mysql 容器时区配置文件目录映射
    -v /etc/localtime:/etc/localtime:ro \
    
    # 指定环境变量,指定 mysql root 用户密码
    -e MYSQL_ROOT_PASSWORD=root \
    
    # docker 运行的容器镜像为 mysql (以守护进程运行)
    -d mysql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    编辑 MySQL 配置文件

    在mysql 容器配置文件目录映射 /home/docker/mysql/conf/conf.d/ 中新建 my.cnf MySQL 配置文件,在其中编写如下内容:

    # mysql8
    
    # mysql服务器配置
    [mysqld]
    
    # 设置server_id,同一局域网内需要唯一
    # server_id=101
    
    # 配置mysql服务器的字符集编码
    character-set-server=utf8mb4
    
    # 配置mysql服务器的比较规则
    collation-server=utf8mb4_general_ci
    
    # 设置东八区时区
    default-time_zone='+8:00'
    
    # 设置密码验证规则
    default_authentication_plugin=mysql_native_password
    
    # 把表中数据导出到csv
    # secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
    # secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
    # secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。
    secure_file_priv=/var/lib/mysql
    
    # 二进制日志过期清理时间
    expire_logs_days=7
    
    # 日志配置
    # ...
    
    # mysql接收来自客户端请求相关配置
    [client]
    
    # 配置mysql接收来自客户端请求时的字符集编码
    default-character-set=utf8mb4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    重启 mysql 容器

    docker restart mysql
    
    • 1
  • 相关阅读:
    服务供应商安全管理制度
    黄金价格查询易语言代码
    【使用 BERT 的问答系统】第 4 章 :BERT 算法详解
    【获取当前月时间】elementul日期选择器在页面一进来直接获取到本月1号到当前日期的方法【详细注释】
    343. 整数拆分
    暑期JAVA学习(39)UDP通信
    你肯定不知道RocketMQ生产者是如何规避故障Broker的
    如何在IDEA中设置字体随鼠标放大缩小
    MQTT协议快速了解
    算法与数据结构-AC自动机
  • 原文地址:https://blog.csdn.net/m0_53022813/article/details/134212289