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
歡迎來到MySQL監控器。命令以 ;  \g 結束。
您的MySQL連接ID是 10
伺服器版本:8.0.31 MySQL Community Server - GPL

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

Oracle是Oracle Corporation及/或其附屬公司的註冊商標。其他名稱可能是其各自所有者的商標。

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