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

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

http://www.lryc.cn/news/327665.html

相关文章:

  • PGAdmin 4:用于管理和维护PostgreSQL数据库的强大工具
  • 成都市酷客焕学新媒体科技有限公司:实现品牌的更大价值!
  • 探索数据库--------------mysql主从复制和读写分离
  • 【Hello,PyQt】控件拖拽
  • 荟萃分析R Meta-Analyses 3 Effect Sizes
  • 常用的8个应用和中间件的Docker运行示例
  • UnoCSS实现背景图片样式加载
  • vue前端工程化
  • 面向对象:继承
  • ES学习日记(一)-------单节点安装启动
  • 【管理咨询宝藏59】某大型汽车物流战略咨询报告
  • ArcGIS Pro横向水平图例
  • 线程创建的几种方式
  • Python教程:一文掌握Python多线程(很详细)
  • 华为防火墙配置指引超详细(包含安全配置部分)以USG6320为例
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • 选择最佳图像处理工具OpenCV、JAI、ImageJ、Thumbnailator和Graphics2D
  • 微信小程序版本更新检测
  • 【每日力扣】343. 整数拆分与63. 不同路径 II
  • 洛谷 Cut Ribbon
  • #AS,idea,maven,gradle
  • FPGA结构与片上资源
  • 【分布式】——分布式事务
  • 第6章:“让我们思考这个”的提示
  • 安卓Activity上滑关闭效果实现
  • 使用conda管理python环境
  • MR混合现实情景实训教学系统在军事演练课堂中的教学应用
  • vant checkbox 复选框 样式改写
  • 物联网实战--入门篇之(一)物联网概述
  • 将yolov5s部署到安卓上实战经验总结