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

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
http://www.xdnf.cn/news/6163.html

相关文章:

  • Windows 操作系统使用 Tcping 命令检查目标主机端口是否开放
  • Day24-元组、OS模块
  • SparkSQL操作Mysql(2)
  • phpstudy的Apache添加AddType application/x-httpd-php .php .php5配置无效的处理方式
  • “智”造升级:金众诚如何赋能重型机械企业高效项目管理?
  • 【Python】超类与父类
  • Java 异常处理之 BufferUnderflowException(BufferUnderflowException 概述、常见发生场景、避免策略)
  • 华为云Flexus+DeepSeek征文|基于华为云ModelArts Studio平台体验DeepSeek-V3大模型
  • 微信小程序之按钮短时间内被多次点击问题
  • Python解释器、REPL与脚本的区别
  • TypeScript装饰器-简洁版
  • 启动窗体自动输入上次内容——CAD c#二次开发
  • MySQL--day1--数据库概述
  • [20250514] 脑机接口行业调研报告(2024年最新版)
  • Sunsetting 创建 React App
  • 斜率变化策略
  • 手写CString类
  • UniApp Vue3事件适配与兼容方案
  • python 练习 五
  • IIS服务器URL重写配置完整教程
  • MySQL视图:虚拟表的强大功能与应用实践
  • 国产化环境下的 DICOM 网络服务与影像处理适配
  • Yolov8的详解与实战-深度学习目标检测
  • 关于vue学习的经常性错误
  • KUKA库卡焊接机器人智能气阀
  • 亚远景-对ASPICE评估体系的深入研究与分析
  • ConfigMap 和 Secret 是否支持热更新
  • 系统单元测试和项目打包
  • Jmeter -- JDBC驱动连接数据库超详细指南
  • 东莞文件服务器存储维修-DELL MD3400电池故障