win系统环境搭建(十四)——Windows系统下使用docker安装mysql8和mysql5.7

windows环境搭建专栏🔗点击跳转

win系统环境搭建(十四)——Windows系统下使用docker安装mysql8和mysql5.7

文章目录

  • win系统环境搭建(十四)——Windows系统下使用docker安装mysql8和mysql5.7
    • MySQL8
      • 1.新建文件夹
      • 2.创建docker-compose.yaml
      • 3.创建my.cnf
      • 4.mysql容器的启动和关闭
    • MySQL5.7
      • 1.新建文件夹
      • 2.创建docker-compose.yaml
      • 3.创建my.cnf
      • 4.mysql容器的启动和关闭
    • 同时使用mysql8和mysql5.7

能使用这篇文章的前提是你的window电脑已经安装了docker,若没有docker,请参考我的一篇文章win系统环境搭建(十一)——Windows安装docker,把docker安装一下。若已经有了docker,请往下看。如果你下载的时候感觉拉取镜像很慢,可以参考我这一篇文章win系统环境搭建(十三)——Windows系统的docker设置阿里源,把你的docker换成阿里镜像,就会拉取地快一点。

如果你读过我之前写的文章,就知道这一篇博客的所有内容和我写的CentOS系统环境搭建(三)——使用docker-compose安装mysqlUbuntu系统环境搭建(六)——使用docker-compose安装MySQL内容是一模一样的,为什么一样的内容我要写三遍呢?因为他们一个是centos系统,另一个是Ubuntu系统,另一个是windos系统。But ! ! ! 为什么一样的内容我要写三遍呢? 因为他们都是docker。docker是真正的跨平台!你明白我意思了吗?

如果你能掌握本篇博客的内容,我们今后将不必再痛苦地在windows繁琐地安装mysql8,不必在安装mysql的时候面对种种报错,又或者某天被变态客户或者变态领导说,我们这次项目要用mysql5.7,请切换一个mysql5.7,然后卑微的开发者只能卸载自己电脑上的mysq8,然后安装mysql5.7,随之而来的又是安装过程中一个一个的大坑!?!让痛苦滚蛋吧!😘该文献给所有在windows系统上安装MySQL的时候受苦受难的人。

现在,打开cmd让我们开始吧!

MySQL8

1.新建文件夹

mkdir C:\App\mysql8

2.创建docker-compose.yaml

cd C:\App\mysql8
vim docker-compose.yaml

为防止格式错乱可以用粘贴模式粘贴

:set paste

docker-compose.yaml内容如下

version: '3.8'
services:
  mysql:
    # 使用 MySQL 8.0.28 镜像
    image: mysql:8.0.28
    # 容器名称为 docker_mysql
    container_name: docker_mysql8
    # 设置网络
    ports:
      - 3306:3306
    # 容器退出时自动重启
    restart: always
    # 防止被OOM kill, -1000为最低优先级
    oom_score_adj: -1000
    environment:
      # 设置 MySQL root 用户的密码为 root(密码一定记得改复杂,不然很危险)
      MYSQL_ROOT_PASSWORD: root
    volumes:
      # 挂载数据目录
      - ./data:/var/lib/mysql
      - ./mysql-files:/var/lib/mysql-files
      # 挂载配置文件,并设置为只读模式
      - ./my.cnf:/etc/mysql/my.cnf:ro
    command:
      # 使用指定的配置文件启动
      - --defaults-file=/etc/mysql/my.cnf

3.创建my.cnf

cd C:\App\mysql8
vim my.cnf

my.cnf内容如下

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
# 客户端使用的端口号
port=3306
# 客户端连接的 socket 路径
socket=/var/run/mysqld/mysqld.sock
[mysqld]
# 限制 MySQL 服务器只能从 /var/lib/mysql-files 目录读取文件或将文件写入该目录
secure-file-priv=/var/lib/mysql-files
# 使用主机名进行缓存查找,以提高连接性能
skip-host-cache
# 进行权限验证时,会尝试将客户端的主机名解析为 IP 地址
skip-name-resolve
# 服务端使用的端口号
port=3306
# MySQL 运行用户
user=mysql
# 服务器 ID
server-id=1
# 日志时间系统时间
log_timestamps=SYSTEM
# 默认时区东八区
default-time_zone='+8:00'
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 服务器连接的 socket 路径
socket=/var/run/mysqld/mysqld.sock
# 数据存放目录
datadir=/var/lib/mysql
# 开启二进制日志功能
log-bin=/var/lib/mysql/mysql-bin
# InnoDB 数据文件存放目录
innodb_data_home_dir=/var/lib/mysql
# InnoDB 日志文件存放目录
innodb_log_group_home_dir=/var/lib/mysql
# MySQL 错误日志文件路径
log-error=/var/lib/mysql/mysql.log
# 存放 MySQL 进程 ID 的文件路径
pid-file=/var/lib/mysql/mysql.pid
# 表名大小写不敏感
lower_case_table_names=1
# 服务端字符集
character-set-server=utf8mb4
# 自动提交所有事务
autocommit=1
# 跳过排它锁定
skip-external-locking
# 键缓存大小
key_buffer_size=64M
# 允许的最大数据包大小
max_allowed_packet=16M
# 表缓存
table_open_cache=6000
# 排序缓存大小
sort_buffer_size=16M
# 网络缓冲区长度
net_buffer_length=32K
# 读取缓冲区大小
read_buffer_size=16M
# 随机读取缓冲区大小
read_rnd_buffer_size=1024K
# MyISAM 排序缓冲区大小
myisam_sort_buffer_size=265M
# 线程缓存大小
thread_cache_size=512
# 临时表大小
tmp_table_size=512M
# 启用显式默认时间戳
explicit_defaults_for_timestamp=ON
# 最大连接数
max_connections=3000
# 连接错误最大数量
max_connect_errors=100
# 打开文件限制
open_files_limit=65535
# 二进制日志格式
binlog_format=mixed
# 二进制日志过期时间(秒)
binlog_expire_logs_seconds=864000
# 创建表时使用的默认存储引擎
default_storage_engine=InnoDB
# InnoDB 数据文件路径设置
innodb_data_file_path=ibdata1:10M:autoextend
# InnoDB 缓冲池大小
innodb_buffer_pool_size=2G
# InnoDB 日志文件大小
innodb_log_file_size=512M
# InnoDB 日志缓冲区大小
innodb_log_buffer_size=16M
# InnoDB 每次提交时刷新日志
innodb_flush_log_at_trx_commit=1
# InnoDB 加锁等待超时时间(秒)
innodb_lock_wait_timeout=60
[mysqldump]
# 快速导出数据
quick
# 允许的最大数据包大小
max_allowed_packet=16M
[myisamchk]
# 键缓存大小
key_buffer_size=64M
# 排序缓冲区大小
sort_buffer_size=16M
# 读取缓冲区大小
read_buffer=8M
# 写入缓冲区大小
write_buffer=8M
[mysqlhotcopy]
# 交互式超时时间
interactive-timeout

4.mysql容器的启动和关闭

启动

docker compose up -d

关闭(删除)

docker compose down

MySQL5.7

1.新建文件夹

mkdir C:\App\mysql57

2.创建docker-compose.yaml

cd C:\App\mysql57
vim docker-compose.yaml

为防止格式错乱可以用粘贴模式粘贴

:set paste

docker-compose.yaml内容如下

version: '3.8'
services:
  mysql:
    # 使用 MySQL 5.7.44 镜像
    image: mysql:5.7.44
    # 容器名称为 docker_mysql
    container_name: docker_mysql57
    # 设置网络
    ports:
      - 3307:3306
    # 容器退出时自动重启
    restart: always
    # 防止被OOM kill, -1000为最低优先级
    oom_score_adj: -1000
    environment:
      # 设置 MySQL root 用户的密码为 root
      MYSQL_ROOT_PASSWORD: root
    volumes:
      # 挂载数据目录
      - ./data:/var/lib/mysql
      - ./mysql-files:/var/lib/mysql-files
      # 挂载配置文件,并设置为只读模式
      - ./my.cnf:/etc/mysql/my.cnf:ro
    command:
      # 使用指定的配置文件启动
      - --defaults-file=/etc/mysql/my.cnf

3.创建my.cnf

cd C:\App\mysql57
vim my.cnf

my.cnf内容如下

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
# 客户端使用的端口号
port=3306
socket=/var/run/mysqld/mysqld.sock
default-character-set=utf8mb4
[mysqld]
# 限制 MySQL 服务器只能从 /var/lib/mysql-files 目录读取文件或将文件写入该目录
secure-file-priv=/var/lib/mysql-files
# docker mysql 默认配置
datadir=/var/lib/mysql
# 开启二进制日志功能
log-bin=/var/lib/mysql/mysql-bin
# InnoDB 数据文件存放目录
innodb_data_home_dir=/var/lib/mysql
# InnoDB 日志文件存放目录
innodb_log_group_home_dir=/var/lib/mysql
# MySQL 错误日志文件路径
log-error=/var/lib/mysql/mysql.log
# 存放 MySQL 进程 ID 的文件路径
pid-file=/var/lib/mysql/mysql.pid
socket=/var/run/mysqld/mysqld.sock
user=mysql
# 用于控制是否允许 MySQL 服务器使用符号链接
symbolic-links=0
# 使用主机名进行缓存查找,以提高连接性能
skip-host-cache
# 进行权限验证时,会尝试将客户端的主机名解析为 IP 地址
skip-name-resolve
#数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=1
#系统数据库编码设置,排序规则
character_set_server=utf8mb4
collation_server=utf8mb4_bin
# 日志时间系统时间
log_timestamps=SYSTEM
# 默认时区东八区
default-time_zone='+8:00'
# 表名大小写不敏感
lower_case_table_names=1
# 自动提交所有事务
autocommit=1
# 跳过排它锁定
skip-external-locking
# 启用显式默认时间戳
explicit_defaults_for_timestamp=ON
#默认sql模式,严格模式
#sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
#NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY 
#NO_ZERO_IN_DATE 不允许年月为0
#NO_ZERO_DATE 不允许插入年月为0的日期
#ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL
#NO_ENGINE_SUBSTITUTION 不使用默认的存储引擎替代
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#是MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段
#如果不能,可以尝试增加sort_buffer_size变量的大小
sort_buffer_size=16M
#应用程序经常会出现一些两表(或多表)Join的操作需求,MySQL在完成某些 Join 需求的时候(all/index join),
#为了减少参与Join的“被驱动表”的读取次数以提高性能,需要使用到 Join Buffer 来协助完成 Join操作。
#当 Join Buffer 太小,MySQL 不会将该 Buffer 存入磁盘文件,而是先将Join Buffer中的结果集与需要 Join 的表进行 Join 操作
#然后清空 Join Buffer 中的数据,继续将剩余的结果集写入此 Buffer 中,
#如此往复。这势必会造成被驱动表需要被多次读取,成倍增加 IO 访问,降低效率。
#若果多表连接需求大,则这个值要设置大一点。
join_buffer_size=16M
#索引块的缓冲区大默认16M
key_buffer_size=64M
# 消息缓冲区会用到该列,该值太小则会在处理大包时产生错误。如果使用大的text,BLOB列,必须增加该值
max_allowed_packet=16M
# 最大连接数
max_connections=3000
# 连接错误最大数量
max_connect_errors=100
#表描述符缓存大小,可减少文件打开/关闭次数,一般max_connections*2。
table_open_cache=6000
#MySQL 缓存 table 句柄的分区的个数,每个cache_instance<=table_open_cache/table_open_cache_instances
table_open_cache_instances=32
#mysql打开最大文件数
open_files_limit=65535
#慢查询,开发调式阶段才需要开启慢日志功能。上线后关闭
slow_query_log=OFF
# 创建表时使用的默认存储引擎
default_storage_engine=InnoDB
# InnoDB 数据文件路径设置
innodb_data_file_path=ibdata1:10M:autoextend
# InnoDB 缓冲池大小
innodb_buffer_pool_size=2G
# InnoDB 日志文件大小
innodb_log_file_size=512M
# InnoDB 日志缓冲区大小
innodb_log_buffer_size=16M
# InnoDB 每次提交时刷新日志
innodb_flush_log_at_trx_commit=1
# InnoDB 加锁等待超时时间(秒)
innodb_lock_wait_timeout=60
# 网络缓冲区长度
net_buffer_length=32K
# 读取缓冲区大小
read_buffer_size=16M
# 随机读取缓冲区大小
read_rnd_buffer_size=1024K
# MyISAM 排序缓冲区大小
myisam_sort_buffer_size=265M
# 线程缓存大小
thread_cache_size=512
# 临时表大小
tmp_table_size=512M
[mysqldump]
# 快速导出数据
quick
# 允许的最大数据包大小
max_allowed_packet=16M
[myisamchk]
# 键缓存大小
key_buffer_size=512M
# 排序缓冲区大小
sort_buffer_size=16M
# 读取缓冲区大小
read_buffer=16M
# 写入缓冲区大小
write_buffer=16M
[mysqlhotcopy]
# 交互式超时时间
interactive-timeout

4.mysql容器的启动和关闭

启动

docker compose up -d

关闭(删除)

docker compose down

同时使用mysql8和mysql5.7

先看看有没有两个容器都在运行

docker ps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你就说好不好用吧!

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

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

相关文章

实战之-Redis商户查询缓存

一、什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震器",防止过高…

Docker-nacos集群部署

nacos单机模式 先拉取一个mysql docker pull mysql:5.7 定义一个挂载目录 mkdir -p /mysql/{conf,data,script} 配置一个my.cnf放到conf目录下 开启mysql容器 privilegedtrue:使用该参数&#xff0c;container内的root拥有真正的root权限&#xff0c;否则&#xff0c;cont…

48-DOM节点,innerHTML,innerText,outerHTML,outerText,静态获取,单机click,cssText

1.DOM基础 Document Object Module,文档对象模型,window对象,document文档,都可以获取和操作 1)文档节点 2)属性节点(标签内的属性href,src) 3)文本节点(标签内的文字) 4)注释节点 5)元素节点(标签) 2.获取元素节点 2.1通过标签名获取getElementsByTagName() …

LeetCode、374. 猜数字大小【简单,二分】

文章目录 前言LeetCode、374. 猜数字大小【简单&#xff0c;二分】题目及类型思路及代码实现 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技…

RabbitMQ安装和使用

简介 RabbitMQ是一套开源&#xff08;MPL&#xff09;的消息队列服务软件&#xff0c;是由LShift提供的一个Advanced Message Queuing Protocol (AMQP) 的开源实现&#xff0c;由以高性能、健壮以及可伸缩性出名的Erlang写成。所有主要的编程语言均有与代理接口通讯的客户端库…

Ubuntu使用QtCreator + CMake 开发C/C++程序

平台 OS: Ubuntu 20.04 cmake: 3.16.3 IDE: Qt Creator 4.11.1 Based on Qt 5.14.1 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit) Built on Feb 5 2020 12:48:30 From revision b2ddeacfb5 Copyright 2008-2019 The Qt Company Ltd. All rights reserved. The program …

【算法】斐波那契数列 [递推,矩阵快速幂]

方法一. 递推 class Solution { public:int fib(int n) {int MOD 1e9 7;if (n < 2) return n;int p 0, q 0, r 1;for (int i 2; i < n; i) {p q;q r;r (p q) % MOD;}return r;} }; 方法二&#xff1a;矩阵快速幂 class Solution { public:const int MOD 1e…

【Docker】Nacos的单机部署及集群部署

一、Nacos的介绍 Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 动态服务发现&#xff1a;Nacos支持DNS与RPC服务发现&#xff0c;提供原生SDK、OpenAPI等多种服务注册方式和DNS、HTTP与API等多种服务发现方式。服务健康监测&#xff1a;Nacos提供…

75.网游逆向分析与插件开发-背包的获取-背包结构与指针的逆向分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;物品名称与物品编号的映射关系分析-CSDN博客 通过这个内容以及可以通过物品的id得到一个名字&#xff0c;知道了它的算法&#xff0c;它的算法自己封装好了&#xff0c;我们直接用就好&#xff0c;接…

MySQL 索引(上)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL-进阶篇 &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现…

智能洗地机哪个牌子好?口碑最好的洗地机

在清洁家务领域&#xff0c;吸尘器标志着清洁用具的转型&#xff0c;随后扫地机器人、蒸汽拖把、洗地机等科技清洁产品相继推出。洗地机因高效清洁表现&#xff0c;销售额迅速上升&#xff0c;成为热门清洁家电之一。这反映了人们在试错中逐渐找到清洁家务的真正方向。在选择清…

Unity中URP下的SimpleLit片元着色器

文章目录 前言一、SimpleLit片元着色器大体框架1、传入 和 返回2、GPU实例化部分3、准备 BlinnPhong 光照模型计算需要的 SurfaceData4、准备 BlinnPhong 光照模型计算需要的 InputData5、进行 BlinnPhong 的计算、雾效颜色混合及透明度计算 二、准备SurfaceData1、SurfaceData…

金银花行业分析:预计未来市场需求量会大幅度提升

银花老根被作为根雕作品艺术品&#xff0c;各种根雕作品惟妙惟肖、栩栩如生。经过艺术加工&#xff0c;废弃的金银花树变成了价格不菲的艺术品&#xff0c;一个笔架&#xff0c;一盆盆景&#xff0c;少则几百元&#xff0c;多则上千、上万元&#xff0c;金银花树变成了“摇钱树…

【计算机网络】HTTP协议以及简单的HTTP服务器实现

文章目录 一、HTTP协议1.认识URL2.urlencode和urldecode3.HTTP协议格式4.HTTP的方法5.HTTP的状态码6.HTTP常见Header7.重定向8.长连接9.会话保持10.基本工具 二、简单的HTTP服务器实现1.err.hpp2.log.hpp3.procotol.hpp4.Sock.hpp5.Util.hpp6.httpServer.hpp7.httpServer.cc8.总…

SCI 2区论文:医疗保健中心训练有素的脑膜瘤分割模型的性能测试-基于四个回顾性多中心数据集的二次分析

基本信息 标题&#xff1a;Performance Test of a Well-Trained Model for Meningioma Segmentation in Health Care Centers: Secondary Analysis Based on Four Retrospective Multicenter Data Sets中文标题&#xff1a;医疗保健中心训练有素的脑膜瘤分割模型的性能测试&am…

three.js从入门到精通系列教程004 - three.js透视相机(PerspectiveCamera)滚动浏览全景大图

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>three.js从入门到精通系列教程004 - three.js透视相机&#xff08;PerspectiveCamera&#xff09;滚动浏览全景大图</title><script src"js/three.js"&g…

【React】脚手架创建项目

文章目录 创建React项目目录结构分析了解PWA脚手架中的webpack 创建React项目 ◼ 创建React项目的命令如下&#xff1a; ​  注意&#xff1a;项目名称不能包含大写字母 ​  另外还有更多创建项目的方式&#xff0c;可以参考GitHub的readme 命令&#xff1a; create-rea…

【算法Hot100系列】字母异位词分组

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

202408读书笔记|《半小时漫画红楼梦12》——鲜花着锦,烈火烹油,不是东风压了西风,就是西风压了东风

202408读书笔记|《半小时漫画红楼梦12》——鲜花着锦&#xff0c;烈火烹油&#xff0c;不是东风压了西风&#xff0c;就是西风压了东风 1. 关系图谱绘制2. 摘录3. 人物关系 1. 关系图谱绘制 https://blog.csdn.net/qq_40985985/article/details/127822673https://blog.csdn.ne…

鸿蒙开发环境配置-Windows

背景 入局鸿蒙开发&#xff0c;发现在 Windows 下面配置安装相关环境并没有像 Mac 一样简单&#xff0c;过程中遇到了一些问题记录一下。 Devceo Studio 下载安装 目前鸿蒙的 IDE 最新版是 4.0&#xff0c;通过这个连接可以下载&#xff0c;鸿蒙4.0下载连接。选择符合我们电…