banner
venom

venom

Docker Compose安裝MySQL8

操作系统:Ubuntu 18.04.6 LTS

内核:Linux 4.15.0-169-generic

架构:x86-64

拉取 MySQL 镜像#

root@ubuntu:~# docker pull mysql:8.0.31

验证#

root@ubuntu:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mysql        8.0.31    3842e9cdffd2   8 days ago   538MB

创建 MySQL 相关挂载目录#

root@ubuntu:~# mkdir -p mysql/data mysql/conf mysql/log mysql/mysql-files

创建 MySQL 配置文件#

root@ubuntu:~# vim mysql/conf/my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files

character-set-server=utf8
default_authentication_plugin=mysql_native_password
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

[mysql]
default-character-set=utf8

#!includedir /etc/mysql/conf.d/

编辑 MySQL 启动的 yml 文件#

mysql:
    image: mysql:8.0.31
    container_name: mysql
    restart: always
    deploy:
      resources:
        limits:
          memory: 1024m
    user: root
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - 3306:3306
    volumes:
      - /opt/mysql/data:/var/lib/mysql:rw
      - /opt/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw
      - /opt/mysql/log:/var/log/mysql:rw
      - /opt/mysql/mysql-files:/var/lib/mysql-files:rw

启动#

root@ubuntu:~# docker-compose up -d

验证#

root@ubuntu:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
49e9b0115a54   mysql:8.0.31   "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds   33060/tcp, 0.0.0.0:3006->3306/tcp, :::3006->3306/tcp   mysql

进入容器内

root@ubuntu:~# docker exec -it mysql bash

登录 mysql

bash-4.4# mysql -uroot -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.31 MySQL Community Server - GPL

版权所有 (c) 2000, 2022, Oracle 及/或其附属公司。

Oracle Oracle Corporation 及/或其附属公司的注册商标。
其他名称可能是其各自所有者的商标。

键入 'help;' '\h' 获取帮助。键入 '\c' 以清除当前输入语句。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。