本节将介绍在线使用Docker安装MySQL数据库的步骤。通过本节的实操,您可以掌握从Docker环境的使用,MySQL镜像的拉取、导入、MySQL容器的启动,再到MySQL命令行的连接等相关操作,从而具备使用Docker安装并部署MySQL的能力。本节要求您具备的基本能力有Linux,Docker,以及MySQL.
左侧的线上环境已经为您准备好了Docker环境,可以使用以下命令进行验证。
docker --version
通常,我们无论是使用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容器
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
首先通过以下命令进入容器内部
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命令行工具,所以我们需要先进行安装。
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。
原文:https://www.cnblogs.com/freeaihub/p/13185892.html