当前位置: 首页 > news >正文

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: ./mysqlimage: mysql:8.0.39container_name: zaomeng-mysqlrestart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=p@ssw0rd # 设置root用户的密码- MYSQL_ROOT_HOST=%           # 允许从任何主机连接- TZ=Asia/Shanghaiports:- 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=0max_allowed_packet=128M# 设置时区
default-time_zone='+8:00'

四、启动

sudo docker-compose up -d

相关文章:

  • 【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)
  • GAN简读
  • 我的多条件查询
  • C2S-Scale:Cell2Sentence v2
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的CNC机床控制器技术方案‌
  • Ubuntu磁盘空间分析:du命令及常用组合
  • [思维模式-37]:什么是事?什么是物?什么事物?如何通过数学的方法阐述事物?
  • 360智语:以全栈技术重塑企业级智能体开发新标杆
  • 【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
  • 基于 art 下的类加载机制,实现函数抽取壳
  • 嵌入式C语言中指针的不同类型及其特点分析
  • idea springboot 配置文件 中文显示
  • 高速系统设计实例设计分析二
  • CSS:选择器的优先级
  • 【Dify系列教程重置精品版】第九章:在Dify对话中显示本地图片(下)
  • AGI大模型(16):向量检索之基于向量检索的RAG实现
  • 数据结构第七章(二)-树形查找:二叉排序树与平衡二叉树
  • 【LeetCode 热题 100】全排列 / 子集 / 组合总和 / 分割回文串 / N 皇后
  • 论文阅读笔记——双流网络
  • 利用vba替换word中多个表格,相邻单元格的文字
  • 法治日报整版聚焦:儿童能否成为短视频主角?该如何监管?
  • 优化营商环境,服务上海“五个中心”建设,北外滩有何举措?
  • 人民网评:守护健康证的“健康”,才有舌尖上的安全
  • 文学花边|对话《借命而生》原著作者石一枫:我给剧打90分
  • 中国科学院院士徐春明不再担任山东石油化工学院校长
  • 陈宝良 高寿仙 彭勇︱明清社会的皇权、商帮与市井百态