docker-compose mysql

使用docker-compose 部署 MySQL(所有版本通用)

一、拉取MySQL镜像

我这里使用的是MySQL8.0.18,可以自行选择需要的版本。

docker pull mysql:8.0.18

二、创建挂载目录

mkdir -p /data/mysql8/log
mkdir -p /data/mysql8/data
mkdir -p /data/mysql8/conf.d

三、添加配置文件my.cnf (没有特殊需求可以跳过)

这里需要给MySQL做点自定义的配置,比如时区字符编码等

vi /data/mysql8/conf.d/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

# 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0
max_allowed_packet=16M 

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

四、编写 docker-compose.yml 文件 

version: '3'
services:
  mysql: # 服务名称
    image: mysql:8.0.18 # 或其它mysql版本
    container_name: mysql8 # 容器名称
    environment:
      - MYSQL_ROOT_PASSWORD=123456 # root用户密码
#      - TZ=Asia/Shanghai # 设置容器时区 我这里通过下面挂载方式同步的宿主机时区和时间了,这里忽略
    volumes:
      - /data/mysql8/log:/var/log/mysql # 映射日志目录,宿主机:容器
      - /data/mysql8/data:/var/lib/mysql # 映射数据目录,宿主机:容器
      - /data/mysql8/conf.d:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
      - /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题,ro是read only的意思,就是只读。
    ports:
      - 3306:3306 # 指定宿主机端口与容器端口映射关系,宿主机:容器
    restart: always # 容器随docker启动自启

 五、启动容器

docker-compose -f docker-compose.yml up -d

六、运行后查看启动容器的情况

docker ps

七、连接测试

以交互式命令进入容器,也可以使用navicat等客户端连接,使用Docker安装MySQL会给root用户开启远程访问。

docker exec -it mysql8 /bin/bash

使用MySQL自带客户端连接工具连接

mysql -h127.0.0.1 -uroot -p123456

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/498423.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django安装及第一个项目

1、安装python C:\Users\leell>py --version Python 3.10.6 可以看出我的环境python的版本3.10.6,比较新 2、 Python 虚拟环境创建 2.1 官网教程 目前,有两种常用工具可用于创建 Python 虚拟环境: venv 在 Python 3.3 及更高版本中默…

yarn的安装和使用:Yarn 快速上手指南

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

Ubuntu18.04 下Ublox F9P 实现RTK (利用CORS服务无需自建基站)

本内容参考如下连接:Ubuntu下Ublox F9P利用CORS服务无需自建基站实现RTK-CSDN博客 一、Ublox F9P 硬件模块示意图 图中展示了Ublox F9P的接口,包括串口2(`UART1`和`UART2`),USB1。需要人为通过u-center(Ublox F9P的显示软件)软件设置以下功能: Ublox通过`UART1`向PC端发送…

enscan自动化主域名信息收集

enscan下载 Releases wgpsec/ENScan_GO (github.com) 能查的分类 实操: 首先打开linux 的虚拟机、 然后把下面这个粘贴到虚拟机中 解压后打开命令行 初始化 ./enscan-0.0.16-linux-amd64 -v 命令参数如下 oppo信息收集 运行下面代码时 先去配置文件把coo…

|行业洞察·地产|《2023年中国物流地产行业报告-23页》

报告内容的详细解读: 1. 宏观经济背景 GDP增长:2023年二季度,中国国民生产总值(GDP)同比实际增长率为6.3%,显示出弱复苏态势,但增速较2022年第二季度有所下降。消费市场:消费市场同…

睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用

机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台,产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案,让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升…

九泰智库 | 医械周刊- Vol.18

⚖️ 法规动态 医疗器械并购风起,深交所联合北京经信局举办医疗器械座谈交流会 | 第一财经 近日,深圳证券交易所联合北京市经济和信息化局,举办“发挥深市医疗器械龙头引领作用,积极培育地方新质生产力”座谈交流活动。邀请了行业…

Linux 安装部署高性能缓存服务redis

Linux 系统安装Redis 5 注意事项: 下载Redis 文件包,并上传至linux服务上解压 tar -zxvf redis.tar安装: 编译 make PREFIX/usr/local/redis install配置: redis.conf daemonize yes bind 127.0.0.1 192.168.1.221 supervised…

TQ-DDL contention事件导致数据库hang死

数据库一天内多次hang住,最后只能重启恢复,操作系统及数据库版本:Windows Oracle 12.2.0.1检查hang住时间段alert日志,发现数据库多次重启日志,基本上是hang住然后手工重启。检查ash记录,发现重启前有很多“…

2024.3.28学习笔记

今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p286-p294 继承 继承可以解决代码复用,让我们的编程更加靠近人类思维,当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些…

Rust编程(五)终章:查漏补缺

闭包 & 迭代器 闭包(Closure)通常是指词法闭包,是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量,在函数式编程范式中也被称为自由变量,是指并不是在闭包内定义的变量。将自…

设计模式(1)——单例模式

目录 1. 单例模式的含义 2. 单例模式的四种常见方式 2.1 饿汉式经典加载方式 2.2 懒汉式加载方式 2.3 静态内部类方式加载 2.4 枚举类加载方式 1. 单例模式的含义 单例,简单来说就是单个实例,是一种常见的软件的设计模式。 一个类只实例化自己的…

社交科技:探索Facebook的技术创新

引言 在当今数字化社会中,社交媒体成为了人们日常生活不可或缺的一部分,而Facebook作为其中的领军者,一直在探索和应用新的技术,以满足用户的需求并不断提升用户体验。本文将深入探讨Facebook在技术创新方面的努力与成就&#xf…

Fastadmin给列表数据绑定添加内容

不同及服务需要收集不同的字段,在服务列表处增加按钮,弹出管理字段列表,单独管理每个服务的字段。如下图,给不同的服务绑定不同表单字段,点击表单按钮弹出页面维护当前服务的字段。 实现代码 //初始化表格处添加按钮 …

吴恩达2022机器学习专项课程(一) 4.2 梯度下降实践

问题预览/关键词 本节内容梯度下降更新w的公式梯度下降更新b的公式的含义α的含义为什么要控制梯度下降的幅度?导数项的含义为什么要控制梯度下降的方向?梯度下降何时结束?梯度下降算法收敛的含义正确更新梯度下降的顺序错误更新梯度下降的顺…

密码杂凑算法Banana512原理详解

密码杂凑算法Banana512原理详解 黄金龙 QQ1435271638 Banana512属于杂凑函数,与美国的SHA256(安全哈希算法)类似,都属于信息摘要算法,又被称为Hash算法,Hash算法主要用于完整性校验和提高数字签名的有效性。 Hash算法的输入为任意长度的消息,输出为固定长度的Hash值,…

Java八股文(算法)

Java八股文の算法 算法 算法 逆序输出字符串 题目描述:输入一个字符串,要求逆序输出。 public static String reverseString(String s) {StringBuilder sb new StringBuilder();for (int i s.length() - 1;i > 0;i--) {sb.append(s.charAt(i));}r…

科技改变财务规划:提升企业对自动化技术的管理

在当今快节奏的市场经济中,财务规划与分析团队不仅仅是数字运算者,他们在推动业务决策、识别风险和机遇以及制定未来战略计划方面发挥着关键作用。然而,对于大多数企业来说,现实情况是财务工作过于关注历史数据分析和报告&#xf…

在 Mac 上恢复已删除文件的 4 种方法 [完整指南]

几乎每个 Mac 用户都有过因删除、格式化硬盘或清空垃圾箱而导致数据丢失的经历。当您在 Mac 上删除文件并清空垃圾箱或使用“磁盘工具”擦除功能擦除整个硬盘驱动器时,您可能会认为已删除的文件或已擦除的数据已永远消失。事实上,事实并非如此。使用正确…

电池稳定性测试系统太阳光模拟器/数字源表/测试软件

太阳光模拟器又称太阳模拟器太阳能模拟器提供一个接近自然日光的环境,不受环境、气候和时间等因素影响实现24小时不间断光照。太阳光模拟器又称太阳能模拟器太阳模拟器广泛应用于太阳能电池特性测试、染料敏化电池(DSSC)、钙钛矿电池&#xf…