10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

2.5.6.1 MySQL Server使用Docker部署的基本步骤

警告

MySQL团队维护的MySQL Docker图像专为Linux平台而构建。不支持其他平台,并使用这些MySQL Docker图像的用户以自己的风险为此。看这里的讨论对于在非Linux操作系统上运行这些容器的一些已知限制。

下载MySQL Server Docker映像
重要的

对于MySQL Enterprise Edition的用户:需要订阅才能使用MySQL Enterprise Edition的Docker映像。订阅通过带来自己的许可模式;看如何购买MySQL产品和服务有关详细信息。

在单独的步骤中下载服务器映像不是严格必需的;但是,在创建Docker容器之前执行此步骤可确保您的本地图像是最新的。要下载MySQL Community Edition Image,请运行此命令:

Docker Pull MySQL / MySQL-Server:标签

标签是您要拉动的图像版本的标签(例如,5.65.78.0, 或者最新的)。如果标签被省略了最新的使用标签,下载了最新的GA版本的MySQL社区服务器的图像。请参阅可用版本的标签列表Docker Hub中的MySQL / MySQL-Server页面

要从Oracle Container Registry(OCR)下载MySQL Community Edition映像,请运行此命令:

docker pull container-registry.oracle.com/mysql/mysql-server:标签

要从OCR下载MySQL Enterprise Edition Image,您需要首先接受OCR上的许可协议,并使用Docker客户端登录容器存储库:

  • 访问OCRhttps://container-registry.oracle.com/并选择mysql.

  • 在MySQL存储库列表下,选择企业服务器

  • 如果您还没有登录OCR,请单击登入页面右侧的按钮,然后在提示时输入您的Oracle帐户凭据。

  • 按照页面右侧的说明接受许可协议。

  • 使用Docker客户端登录OCR(Docker.命令用来使用docker登录命令:

    #docker登录container-registry.oracle.com用户名:Oracle-Account-ID密码:密码登陆成功。

使用此命令从OCR下载MySQL Enterprise Edition的Docker Image:

docker pull container-registry.oracle.com/mysql/enterprise-server:标签

有不同的选择标签,对应于OCR提供的不同版本的MySQL Docker图像:

  • 8.08.0。XX是8.0系列中的最新版本号),最新的:MySQL 8.0,最新的GA

  • 5.75.7。yy是5.7系列中的最新版本号):MySQL 5.7

要下载MySQL Enterprise Edition Image我的Oracle支持网站,进入网站,登录到您的Oracle帐户,并在登录页面上执行以下步骤:

  • 选择补丁和更新标签。

  • 去吧补丁搜索地区和,在搜索选项卡,切换到产品或家庭(高级)子标签。

  • 进入MySQL服务器为了产品字段,以及所需的版本号释放场地。

  • 使用下拉幅度进行其他筛选条选择描述-包含,并输入Docker.在文本字段中。

    下图显示了MySQL Server 8.0的MySQL Enterprise Edition映像的搜索设置:

    图表显示MySQL Enterprise Image的搜索设置
  • 点击搜索按钮,从结果列表中选择所需的版本,然后单击下载按钮。

  • 在里面文件下载出现的对话框,单击并下载。压缩用于Docker映像的文件。

解压缩下载。压缩存档以获得内部的tarball(MySQL-Enterprise-Server-版本。柏油),然后通过运行此命令加载图像:

docker load -i mysql-enterprise-server-版本。柏油

您可以使用此命令列出已下载的Docker映像:

shell> docker图像存储库标签图像ID创建大小mysql / mysql-server最新3157d7f55f8d 4周前241MB
启动MySQL Server实例

要启动MySQL Server的新Docker容器,请使用以下命令:

Docker Run --name =container_name.-  restart on-fally -dimage_name.标签

可以使用图像名称使用Docker映像命令,如上所述下载MySQL Server Docker映像

- 名称选项,用于为服务器容器提供自定义名称,是可选的;如果没有提供容器名称,则会生成随机的。

- 重新开始选项用于配置重启政策为你的容器;它应该设置为值失败,启用对客户端会话中的服务器重新启动的支持(例如,当重新开始声明由客户或期间执行配置InnoDB集群实例)。通过支持重新启用的支持,在客户端会话中发出重新启动会导致服务器和容器停止,然后重新启动。MySQL 8.0.21及更高版本可用于服务器重启的支持。

例如,要为MySQL Community Server启动新的Docker容器,请使用此命令:

docker运行--name = mysql1  - 失败-d mysql / mysql-server:8.0

要使用从OCR下载的Docker Image启动MySQL Enterprise Server的新Docker容器,请使用以下命令:

docker run --name = mysql1  - 失败-d contains-registry.oracle.com/mysql/enterprise-server:8.0

要使用从我的Oracle支持下载的Docker Image的MySQL Enterprise Server启动新的Docker容器,请使用以下命令:

docker运行--name = mysql1  - 失败 -  dd mysql /企业 - 服务器:8.0

如果较早的指定名称和标签的Docker映像尚未下载Docker Pull.或者Docker运行命令,现在下载了图像。容器的初始化开始,并且容器出现在运行时运行容器列表中Docker PS.命令。例如:

Shell> Docker PS容器ID图像命令创建状态端口名称A24888F0D6F4 MySQL / MySQL-Server“/entryPoint.sh我...”14秒前Up 13秒(Health:启动)3306 / TCP,33060 / TCP MySQL1

容器初始化可能需要一段时间。当服务器准备好使用时,地位在输出中的容器Docker PS.命令变更从(健康:开始)(健康)

-D.选项使用Docker运行上面的命令使容器在后台运行。使用此命令监视容器的输出:

docker logs mysql1.

完成初始化后,命令的输出将包含为root用户生成的随机密码;例如,查看密码,例如,此命令:

Shell> Docker Logs MySQL1 2>&1 |Grep生成生成的root密码:axegh3kajydlarubemecis&eshos

从容器内连接到MySQL Server

一旦服务器准备就绪,就可以运行mysql.您刚刚启动的MySQL Server容器中的客户端,并将其连接到MySQL Server。使用docker exec-it.命令开始一个mysql.客户端内的客户端,您已经开始如下:

docker exec-it mysql1 mysql -uroot -p

询问时,输入生成的root密码(请参阅最后一步启动MySQL Server实例以上关于如何找到密码)。因为这mysql_onetime_password.默认情况下,选项是如此,连接后mysql.客户端到服务器,您必须通过发出此语句重置服务器root密码:

MySQL> Alter's Root'@'localhost'识别'密码'

代替密码使用您选择的密码。重置密码后,服务器已准备好使用。

集装箱壳址

要将shell访问MySQL Server容器,请使用docker exec-it.命令在容器中启动Bash shell:

shell> docker exec-it mysql1 bash bash-4.2#

然后,您可以在容器中运行Linux命令。例如,要在容器中的服务器数据目录中查看内容,请使用此命令:

bash-4.2#ls / var / lib / mysql auto.cnf ca.pem client-key.pem ib_logfile0 ibdata1 mysql mysql.sock.lock.liftice_key.pem server-cert.pem sys ca-key.pem client-cert.pem ib_buffer_poolib_logfile1 ibtmp1 mysql.sock performence_schema public_key.pem server-key.pem
停止并删除MySQL容器

要停止我们创建的MySQL Server容器,请使用此命令:

docker停止mysql1.

Docker停止向该时向SIGTERM信号发送mysqld.过程,使服务器被优雅地关闭。

还请注意,当容器的主要过程(mysqld.在MySQL Server容器的情况下停止,Docker容器会自动停止。

要再次启动MySQL Server容器:

docker启动mysql1.

要在单个命令中再次停止并重新启动MySQL Server容器:

docker重新启动mysql1.

要删除MySQL容器,请先停止它,然后使用Docker RM.命令:

docker停止mysql1.
docker rm mysql1.

如果你想要的话服务器数据目录的Docker卷要在同一时间删除,添加-v.选择Docker RM.命令。

升级MySQL Server容器
重要的
  • 在执行任何升级到MySQL之前,请仔细遵循指示第2.11节“升级mysql”。在那里讨论的其他指示中,在升级之前备份数据库尤为重要。

  • 本节中的说明要求主机上持久地持有服务器的数据和配置。看持久数据和配置更改有关详细信息。

请按照以下步骤升级MySQL 5.7至8.0的Docker安装:

  • 停止MySQL 5.7服务器(容器名称是mysql57.在这个例子中):

    Docker停止MySQL57.
  • 下载MySQL 8.0 Server Docker映像。请参阅说明下载MySQL Server Docker映像;确保为MySQL 8.0使用右侧标记。

  • 启动新的MySQL 8.0 Docker容器(命名mysql80.在此示例中)使用旧服务器数据和配置(如果需要,有正确的修改 - 请参阅第2.11节“升级mysql”)已坚持在主机上(由绑定安装在这个例子中)。对于MySQL Community Server,请运行此命令:

    Docker Run --name = mysql80 \ --mount type = bind,src = / path-host-machine / my.cnf,dst = / etc / my.cnf \ --mount type = bind,src = / path-on-host-machine / datadir,dst = / var / lib / mysql \ -d mysql / mysql-server:8.0

    如果需要,调整mysql / mysql-server到正确的图像名称 - 例如,替换它container-registry.oracle.com/mysql/enterprise-server.对于从OCR下载的MySQL Enterprise Edition Images,或MySQL / Enterprise-Server对于从中下载的MySQL Enterprise Edition Images我的Oracle支持

  • 等待服务器完成启动。您可以使用使用的服务器的状态Docker PS.命令(参见启动MySQL Server实例如何做到这一点)。

  • 对于MySQL 8.0.15及更早版本:跑过mysql_upgrade.在MySQL 8.0服务器容器中的实用程序(MySQL 8.0.16及更高版本不需要):

    docker exec-it mysql80 mysql_upgrade -uroot -p

    出现提示时,输入旧MySQL 5.7服务器的root密码。

  • 通过重新启动MySQL 8.0 Server容器来完成升级:

    docker重新启动mysql80.
使用Docker部署MySQL Server的更多主题

有关使用Docker配置的MySQL Server的更多主题,如服务器配置,持久数据和配置,服务器错误日志和容器环境变量,请参阅2.5.6.2节“使用docker部署mysql服务器的更多主题”