Docker安装MySQL

本文摘自https://freeaihub.com/article/install-mysql-in-docker.html,该页可在线进行学习。

本节将介绍在线使用Docker安装MySQL数据库的步骤。通过本节的实操,您可以掌握从Docker环境的使用,MySQL镜像的拉取、导入、MySQL容器的启动,再到MySQL命令行的连接等相关操作,从而具备使用Docker安装并部署MySQL的能力。本节要求您具备的基本能力有Linux,Docker,以及MySQL.

准备Docker环境

左侧的线上环境已经为您准备好了Docker环境,可以使用以下命令进行验证。

docker --version

准备MySQL镜像

通常,我们无论是使用MySQL还是其它的镜像,都是从Docker Hub这样的公有镜像仓库或私有镜像仓库中使用docker pull 镜像名这样的命令拉取,但因为拉取速度问题,我们采用直接导入镜像的方法来准备MySQL。

docker load < /share/images/mysql.5.7.tar

会出现如下提示

e9dc98463cd6: Loading layer  58.48MB/58.48MB
7288a4c980c6: Loading layer  338.4kB/338.4kB
683d7a4130fe: Loading layer  10.44MB/10.44MB
5547ac6d39e8: Loading layer  4.472MB/4.472MB
9a341d74c9b2: Loading layer  1.536kB/1.536kB
7acae26d323c: Loading layer  46.15MB/46.15MB
9e88946b01ba: Loading layer  32.77kB/32.77kB
7c808cd26970: Loading layer  3.584kB/3.584kB
252c276e7a19: Loading layer  258.4MB/258.4MB
3b7576a71f0c: Loading layer  9.728kB/9.728kB
7848732ef73b: Loading layer  1.536kB/1.536kB
Loaded image: mysql:5.7

在上方命令导入成功后,我们进行验证下:

docker images

出现以下提示则代表镜像导入成功

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 383867b75fd2        9 months ago        373MB

更多的详情可以查看MySQL镜像在Docker Hub上的文档:https://hub.docker.com/_/mysql/

创建并启动MySQL容器

使用如下命令来创建并启动MySQL容器

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7

参数解释

-–name:新创建的容器名,命名为mysql
-e:通过环境变量进行配置,此处配置mysql的root用户的登陆密码
-p:端口映射,表示在这个容器中使用3306端口(第二个)映射到实验环境主机的端口号也为3306(第一个)
-d:以后台方式运行MySQL容器
最后一个mysql为指定运行的镜像名,即为mysql

该命令会返回一个长串ID,该ID即为MySQL容器的ID。我们使用以下命令进行验证

docker ps

出现如下提示即代表容器成功启动了

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
39b632b42ddd        mysql:5.7           "docker-entrypoint.s…"   5 seconds ago       Up 4 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

连接MySQL服务

通过容器内部连接MySQL服务

首先通过以下命令进入容器内部

docker exec -it  mysql /bin/bash

使用以下命令进入MySQL

mysql -uroot -p

在弹出的Enter password: 中输入123456,即可进行MySQL。成功进入后会出现如下类似提示

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

使用以下使用命令创建远程用户,并赋于远程用户连接本容器MySQL的权限。

GRANT all ON *.* TO 'remote'@'%' IDENTIFIED BY 'remotepwd';
flush privileges;;#刷新权限
exit;

退出容器环境,返回云实验主机环境

exit

从外部远程连接MySQL服务

因为我们的云实验主机环境上并没有MySQL命令行工具,所以我们需要先进行安装。

apt install mysql-client -y

安装完成后直接进行连接,这里并没有指定端口,因为容器的3306端口已经被映射到了云实验主机环境的3306端口上了。

mysql -uremote -p --protocol tcp

在弹出的Enter password: 输入remotepwd,即可成功从主机命令行命令mysql进入到容器提供的MySQL服务了。

注意:这里需要用到--protocol tcp这个参数,因为命令行命令mysql默认使用的连接协议为socket协议,这里我们的云实验主机并没有安装MySQL服务,所以需要通过TCP端口连接到容器环境中去,因此需要指定这个参数。

总结

通过本节我们在线完成了从MySQL镜像的导入,到容器的运行,再到对MySQL服务的内部访问及外部访问。相信通过本节的在线实操,您能更好的掌握如何使用Docker安装MySQL。

posted @ 2020-06-24 09:34  freeaihub  阅读(299)  评论(0编辑  收藏  举报