docker安装mysql8

一、准备工作
(1)安装docker(docker-compse)
(2)创建相关目录

#创建home目录下mysql文件夹和mysql里的conf,data,log三个文件
mkdir -p /data/mysql/{conf,data,log}
# 赋予 conf 目录读和写的权限 (rwxr-xr-x)
chmod 755 /data/mysql/conf
chmod 755 /data/mysql/data
chmod 755 /data/mysql/log
#创建配置文件
touch /data/mysql/conf/my.cnf

进入my.cof编写配置

[mysqld]
# -------------------- 远程连接 --------------------
# 默认密码插件,兼容旧版本的客户端
default_authentication_plugin=mysql_native_password
# authentication_policy=mysql_native_password,caching_sha2_password

# -------------------- 字符集与排序规则 --------------------
# 服务器默认字符集(MySQL 8 强烈建议 utf8mb4)
character-set-server = utf8mb4
# 默认排序规则(utf8mb4_unicode_ci 或 utf8mb4_general_ci,前者更精确)
collation-server = utf8mb4_unicode_ci
# 客户端连接时默认字符集(兼容旧客户端)
init-connect = 'SET NAMES utf8mb4'


# -------------------- 时区设置 --------------------
# 默认时区(中国为 +8:00)
default-time-zone = '+8:00'

二、运行mysql
(1)直接运行

docker run -d \
  --name mysql8 \
  --restart=always \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=your_root_password \
  -e TZ=Asia/Shanghai \
  -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf:ro \
  -v /data/mysql/data:/var/lib/mysql \
  -v /data/mysql/log:/var/log/mysql \
  mysql:8.0.36

-d 后台运行
–name mysql8 容器名称
–restart=always 容器异常退出自动重启
-p 3306:3306 映射端口(宿主机:容器)
-e MYSQL_ROOT_PASSWORD=xxx 必须设置,root 密码
-e TZ=Asia/Shanghai 设置容器时区
-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf:ro 挂载配置文件(:ro 只读)
-v /data/mysql/data:/var/lib/mysql 挂载数据目录(持久化)
-v /data/mysql/log:/var/log/mysql 挂载日志目录(持久化)
mysql:8.0.36 指定版本号
(2)使用docker compos运行
创建目录

mkdir -p /compose/env
touch /compose/env/compose.yaml

进入/compose/env/compose.yaml编写

services:
  mysql:
    image: mysql:8.0.36
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      TZ: Asia/Shanghai
    volumes:
      - /data/mysql/conf/my.cnf:/etc/mysql/my.cnf:ro
      - /data/mysql/data:/var/lib/mysql
      - /data/mysql/log:/var/log/mysql

启动

#进入目录
cd /compose/env
#启动
docker compose up -d

更多推荐