docker-compose——安装mysql8

一、编写Dockerfile

FROM mysql:8.0.39
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

二、编写docker-compose.yml

version : '3.8'

services:
  zaomeng-mysql:
    build:
      context: ./mysql
    image: mysql:8.0.39
    container_name: zaomeng-mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=p@ssw0rd # 设置root用户的密码
      - MYSQL_ROOT_HOST=%           # 允许从任何主机连接
      - TZ=Asia/Shanghai
    ports:
      - 3306:3306                # 映射端口到宿主机
    command: # MySQL启动时执行的命令行参数
      - --lower_case_table_names=1 # 不区分大消息
      - --character_set_server=utf8mb4 # 字符集
      - --collation_server=utf8mb4_general_ci # 排序
      - --explicit_defaults_for_timestamp=true
      - --max_allowed_packet=128M
      # 这个参数在MySQL8.4中已经被删除
      - --default_authentication_plugin=mysql_native_password # 默认密码校验工具
    volumes:
      # MySQL8.0.19的my.cnf在/etc/mysql/my.cnf,新版本位置都在/etc/my.cnf
      # 如不需要也可以使用默认的将这个挂载删掉
      - ./mysql/conf/my.cnf:/etc/my.cnf
      # MySQL数据
      - ./mysql/data:/var/lib/mysql
      # MySQL日志,在my.cnf中开启
      - ./mysql/logs:/var/log/mysql

三、创建my.cnf

###### [client]配置模块 ######
[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql
# 设置sql模式 sql_mode模式引起的分组查询出现*this is incompatible with sql_mode=only_full_group_by,这里最好剔除ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id = 1

# MySQL8 的密码认证插件 如果不设置低版本navicat无法连接
default_authentication_plugin=mysql_native_password

# 禁用符号链接以防止各种安全风险
symbolic-links=0

# 允许最大连接数
max_connections=1000

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 0: 表名将按指定方式存储,并且比较区分大小写;
# 1: 表名以小写形式存储在磁盘上,比较不区分大小写;
lower_case_table_names=0

max_allowed_packet=128M

# 设置时区
default-time_zone='+8:00'

四、启动

sudo docker-compose up -d

你可能感兴趣的:(docker,adb,容器)