我的编程空间,编程开发者的网络收藏夹
学习永远不晚

技术译文 | 使用 Docker 安装 MySQL

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

技术译文 | 使用 Docker 安装 MySQL

作者:Peter Zaitsev 翻译:管长龙 原文:https://www.percona.com/blog/2019/11/19/installing-mysql-with-docker/

在工作中,我经常需要安装特定版本的 MySQL、MariaDB 或 Percona 来运行一些实验,例如:检查版本差异或是提供测试说明。此博客系列将阐述如何使用 Docker 安装 MySQL、MariaDB 或 Percona。这篇文章是第一篇,重点是 MySQL。

Docker 的优点在于它可以非常轻松地安装最新的 MySQL 版本以及任何其他版本,但往往与典型的生产安装不匹配。当您需要简单的单个实例时,Docker 的确很方便。如果您正在研究一些与复制相关的行为,那么则不一定适合。

这些说明皆在快速、轻松地运行测试实例的情况下。不适用于生产部署。以下内容所假定已安装 Docker。

首先,您应该知道只有两个“官方” MySQL Docker 存储库。其中之一由 Docker 团队维护,可通过一个简单的 docker 命令 mysql:latest 运行起来。另一个由 Oracle 的 MySQL 团队维护,语法:

docker run mysql / mysql-server:latest

说明:语法中的 latest 是 tag 值,表示默认安装库中的最新版本

在以下示例中,我们将使用 MySQL 团队的 Docker 映像,尽管 Docker 团队的工作方式与此类似。

使用 Docker 安装最新版本的 MySQL

docker run --name mysql-latest  
-p 3306:3306 -p 33060:33060  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:latest

这将启动最新版本的 MySQL 实例,可以使用指定的 root 密码从任何地方远程访问该实例。这很容易测试,但不是好的安全习惯(这就是为什么它不是默认值)的原因。

连接到 MySQL Server Docker 容器

使用 Docker 安装意味着您无法直接在主机上获得任何工具,实用程序或库,因此您可以单独安装它们,从远程主机访问创建的实例,或使用 Docker 映像附带的命令行。

通过 Docker 启动 MySQL 命令行客户端:

docker exec -it mysql-latest mysql -uroot -pstrongpassword

使用 Docker 启动 MySQL Shell:

docker exec -it mysql-latest mysqlsh -uroot -pstrongpassword

在 Docker 容器中管理 MySQL 服务器

当您要停止 MySQL Server Docker 容器运行时:

docker stop mysql-latest

如果要重新启动已停止的 MySQL Docker 容器,则不应尝试使用 docker run 重新启动它。相反,您应该使用:

docker start mysql-latest

如果出现错误,例如,如果容器未启动,则可以使用以下命令访问其日志:

docker logs mysql-latest

如果要从头开始重新创建一个新的 Docker 容器,可以运行:

docker stop mysql-latest
docker rm mysql-latest

之后再次执行 docker run 命令。

将命令行选项传给 Docker 容器中的 MySQL Server

如果要将某些命令行选项传给 MySQL Server,可以采用以下方式:

docker run --name mysql-latest  
-p 3306:3306 -p 33060:33060  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:latest 
--innodb_buffer_pool_size=256M 
--innodb_flush_method=O_DIRECT 

在 Docker 中运行指定版本的 MySQL 服务器

如果想在 Docker 容器中运行某版本的 MySQL,这很简单。您可以使用 Docker Image Tag 选择想要的版本,并将 Name 更改为其他名称,以避免名称冲突:

docker run --name mysql-8.0.17  
-p 3306:3306 -p 33060:33060  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:8.0.17

这将在 Docker 容器中启动 MySQL 8.0.17。

docker run --name mysql-5.7  
-p 3306:3306 -p 33060:33060  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:5.7

这将在 Docker 中启动最新的 MySQL 5.7。

在 Docker 中同时运行多版本的 MySQL 服务器

同时在 Docker 中运行多版本的 MySQL ,潜在问题是 TCP 端口冲突。如果您不从外部访问 Docker 容器,而只运行同一容器中包含的程序,则可以删除端口映射(-p option),然后可以运行多个容器:

docker run --name mysql-latest  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:latest
 
docker run --name mysql-8.0.17  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:8.0.17

在更常见的情况下,当您需要从外部访问 Docker 容器时,您将需要将其映射为使用不同的外部端口名称。 例如,要在端口 3306/33060 和 MySQL 8.0.17 在 3307/33070 处启动最新的 MySQL 8,我们可以使用:

docker run --name mysql-latest  
-p 3306:3306 -p 33060:33060  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:latest
  
docker run --name mysql-8.0.17  
-p 3307:3306 -p 33070:33060  
-e MYSQL_ROOT_HOST="%" -e MYSQL_ROOT_PASSWORD="strongpassword"   
-d mysql/mysql-server:8.0.17

如果要在 Docker 上使用 MySQL 进行更复杂的事请,那还有很多事情要考虑。

有关更多信息,请查阅: https://hub.docker.com/r/mysql/mysql-server/ https://dev.mysql.com/doc/refman/8.0/en/linux-installation-docker.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

技术译文 | 使用 Docker 安装 MySQL

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

技术译文 | 使用 Docker 安装 MySQL

作者:Peter Zaitsev翻译:管长龙原文:https://www.percona.com/blog/2019/11/19/installing-mysql-with-docker/在工作中,我经常需要安装特定版本的 MySQL、MariaDB 或 Pe
2015-10-24

Linux虚拟机上怎么安装docker并使用docker安装mysql

Linux虚拟机上怎么安装docker并使用docker安装mysql,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、序言现在在Linux虚拟机上安装程序,越来越多的人都使用
2023-06-05

技术译文 | 使用 TCP Wrappers 保护 MySQL 如何导致服务中断

案例保护 MySQL 总是一个挑战。有一些通用的最佳实践可用于安装加固,但是您的设置越复杂,就越有可能遇到一些难以排查的故障的问题。我们最近在研究一个案例,当活跃线程很高,超过一个阈值(但并不总是相同)时,MySQL 开始变得不可用。在此期间,有许多像下面这样
技术译文 | 使用 TCP Wrappers 保护 MySQL 如何导致服务中断
2021-08-03

如何使用Docker安装Redis和Mysql

本篇内容介绍了“如何使用Docker安装Redis和Mysql”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近准备写如何实现分布式锁的文章
2023-06-19

docker中安装mysql后如何使用

要在Docker中安装并使用MySQL,您可以按照以下步骤操作:拉取MySQL镜像:在终端中运行以下命令来拉取MySQL官方镜像:docker pull mysql运行MySQL容器:运行以下命令来创建并运行一个MySQL容器:docker
docker中安装mysql后如何使用
2024-04-27

怎么安装和使用mysql的docker

这篇文章主要介绍“怎么安装和使用mysql的docker”,在日常操作中,相信很多人在怎么安装和使用mysql的docker问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么安装和使用mysql的docker
2023-06-04

TICK技术栈(三)InfluxDB安装及使用

1.什么是InfluxDB?InfluxDB是一个用Go语言开发的时序数据库,用于处理高写入和查询负载,专门为带时间戳的数据编写,对DevOps监控,IoT监控和实时分析等应用场景非常有用。通过自定义配置让InfluxDB保留规定时间内的数据,并自动从系统中删
TICK技术栈(三)InfluxDB安装及使用
2021-02-26

TICK技术栈(二)Telegraf安装及使用

1.什么是Telegraf?Telegraf是一个用Go语言开发的代理程序,可用于收集和报告指标。Telegraf插件直接从其运行的系统中获取各种指标,从第三方API中提取指标,甚至通过StatsD和Kafka消费者服务来监听指标。它还具有输出插件,可以将指标
TICK技术栈(二)Telegraf安装及使用
2021-02-01

TICK技术栈(四)Grafana安装及使用

1.什么是Grafana?Grafana是一款采用go语言和Angular框架编写的开源的可视化工具,主要用于大规模指标数据的可视化展示,提供包括折线图,饼图,仪表盘等多种监控数据可视化UI,是网络架构和应用分析中最流行的时序数据可视化工具,支持多种不同的时序
TICK技术栈(四)Grafana安装及使用
2018-11-08

TICK技术栈(五)Kapacitor安装及使用

1.什么是Kapacitor?Kapacitor是InfluxData开源的数据处理引擎。它可以处理来自InfluxDB的流数据和批处理数据,并且用户可以用tickScript脚本来处理,监视和警报时序数据库中的时序数据。github地址:https://gi
TICK技术栈(五)Kapacitor安装及使用
2021-11-17

Docker Desktop 安装使用教程(图文步骤)

这篇文章详细介绍了DockerDesktop的安装和使用过程,包括:安装DockerDesktop创建和运行容器通过终端和文件系统访问容器停止和删除容器管理镜像和网络高级用法(使用DockerCompose、构建镜像、DockerSwarm)
Docker Desktop 安装使用教程(图文步骤)
2024-04-02

源码编译安装PHP PDO MySQL:实用技巧与注意事项

源码编译安装PHP PDO MySQL:实用技巧与注意事项PHP是一种广泛应用的服务器端脚本语言,而MySQL是一个流行的开源关系型数据库管理系统,两者结合使用能够为网站开发提供强大的支持。在实际开发中,经常需要使用PHP PDO扩展来连
源码编译安装PHP PDO MySQL:实用技巧与注意事项
2024-03-07

如何在ArchLinux中安装和使用虚拟化技术

在ArchLinux中安装和使用虚拟化技术通常需要使用KVM(Kernel-based Virtual Machine)作为虚拟化解决方案。以下是在ArchLinux中安装和使用KVM的步骤:安装KVM和相关软件包:使用以下命令安装KVM
如何在ArchLinux中安装和使用虚拟化技术
2024-04-09

Docker安装并使用Mysql的详细教程(实测可用!)

在日常的工作中经常会需要将数据存在服务器,经常用到的数据库是mysql,下面这篇文章主要给大家介绍了关于Docker安装并使用Mysql的详细教程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-28

编程热搜

目录