Docker中安装MySQL 8
创始人
2024-05-25 13:16:26
0

前言

上一期在Windows中安装好了Docker环境,这一期在Docker中完成MySQL 8安装和配置。

启动Docker Desktop后在cmd窗口中输入docker -v即可查看到安装的docker版本

Docker启动容器的原理流程

Docker启动一个容器(应用)时,大致原理流程如下图:根据流程图理解以下容器(应用)安装的步骤!

安装MySQL 8

1、拉取MySQL镜像

启动Docker Desktop后在cmd窗口中执行以下命令,即可从配置的镜像源处下载mysql 8.0.29版本的镜像,若不指定版本直接执行docker pull mysql命令则默认是拉取MySQL最新版本的镜像。

# 拉取镜像
docker pull mysql:8.0.29


镜像拉取成功后执行docker images可以看到你拉取的所有镜像,Docker Desktop的images中也可以看到相应的镜像。


若不知道镜像的名称和有些版本的话,拉取镜像前可执行docker search mysql搜索查看,或者在docker hub官网搜索查看

2、创建启动容器

在cmd中执行以下命令,在docker中创建并启动一个MySQL容器,对物理机暴露的端口为3307,且将MySQL的配置文件、日志、数据文件挂载到你物理机的D盘中,指定root用户的密码为123456

docker run --restart=always --name mysql --privileged=true -d -p 3307:3306 -v D:\Docker\WorkSpace\MySQL\conf\my.cnf:/etc/mysql/my.cnf -v D:\Docker\WorkSpace\MySQL\logs:/logs -v D:\Docker\WorkSpace\MySQL\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.29

参数解释:

--restart=always    -> 开机启动容器,容器异常自动重启
--name              -> 指定容器名称
-d                  -> 以守护进程的方式启动容器
-p                  -> 映射宿主机端口
-v                  -> 映射配置文件、日志、数据
-e                  -> 写入配置root密码
--privileged=true   -> 设置特权级运行的容器:使容器内的root拥有真正的root权限,否则container内的root只是外部的一个普通用户权限,很多操作会受限

容器启动成功后可通过docker ps命令查看已启动的容器,docker logs -f mysql可查看mysql容器启动日志

Docker DesktopContainers也能看到启动的容器

3、物理机连接Docker中的MySQL

如下,MySQL容器创建并启动后,(物理机)即可访问连接到docker中的MySQL

拓展my.cnf配置

MySQL的配置文件my.cnf极其重要,下方给出一个配置参考示例:

[client]
default-character-set = utf8mb4[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL# Custom config should go here
# 字符集
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB# 是否对sql语句大小写敏感,0:大小写敏感,1:忽略大小写区别。,只能在初始化服务器时配置。禁止在服务器初始化后更改
# 设置为2时,表名和数据库名按声明存储,但以小写形式进行比较
lower_case_table_names = 2# 最大连接数
max_connections = 1000# Innodb缓存池大小
innodb_buffer_pool_size = 4G# 表文件描述符的缓存大小
table_open_cache_instances=1
table_open_cache=2000
table_definition_cache=2000!includedir /etc/mysql/conf.d/

后记

本来想一起写Oracle-12c的安装教程的,由于文章篇幅太长,Oracle-12c的内容多一些留到下一期再出了。若有问题可在公众号遇见0和1后台加群艾特我咨询!


相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...