在 Linux 上使用 Docker 安装 MySQL

今天带来的教程是在 Linux 上使用 Docker 来安装 MySQL 5.7 数据库。相比较于其他安装方式,使用 Docker 更加简单一些,也可以实现在一台机器上运行多个 MySQL。

系统环境:CentOS 7 x86_64 Minimal 1908

MySQL Docker 镜像官方文档:https://hub.docker.com/_/mysql

1.准备工作

首先是准备工作,我会把使用 Docker 运行的每一个容器都创建一个独立的目录,然后把需要挂载的目录都放到这个目录下,这样子方便管理。在本次示例中,我使用 “~/docker/mysql” 作为 MySQL 容器的目录:

mkdir -p ~/docker/mysql

然后在该目录下再创建一个 “data” 目录和 “conf” 目录,前者作为数据目录,后者作为配置目录:

cd ~/docker/mysql/
mkdir data conf

这两个目录在后面运行 MySQL 的时候会作为目录映射挂载到 mysql 容器中。

2.自定义配置

如果想要自定义配置 MySQL,可以在上一步的配置目录中新建一个配置文件,例如:

vim conf/my.cnf

这里我的配置文件内容为:

[mysqld]
lower_case_table_names=1
character_set_server=utf8
max_connections=2000

根据自己的需求去配置即可。

3.运行 mysql 容器

接下来就可以使用 Docker 来运行 MySQL 了,具体的命令为:

docker run \
--name my-mysql \
-v data:/var/lib/mysql \
-v conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-p 13306:3306 \
-d \
mysql:5.7

第二行的 “name” 参数是给这个容器制定一个名字,之后可以通过这个名字对该容器进行操作,在本例中指定的名字是 “my-mysql“。

第三行是将本地目录下的 “data” 目录映射挂载到容器中的 “/var/lib/mysql” 目录,该目录是 MySQL 的数据存储目录,将该目录映射出来是为了方便之后使用同一份数据。

第四行是将本地目录下的 “conf” 目录映射挂载到容器中的 “/etc/mysql/conf.d” 目录,该目录是 MySQL 的配置目录,映射该目录可以将自定义的本地配置文件应用到容器中的 MySQL 中。

第五行是设置容器中的环境变量 “MYSQL_ROOT_PASSWORD“,该环境变量是用来设置容器中 MySQL 数据库 root 用户的密码。

第六行是设置端口映射,意思是将容器中的 3306 端口映射到主机的 13306端口上,这样子访问主机的 13306 端口就是访问容器中的 3306 端口。这里主机的端口地址可以根据自己的需要去自定义,也可以设置为数据库默认的 3306 端口。之后就可以使用主机的 IP 地址加上主机的端口去访问 MySQL 数据库。需要注意的是如果在外部不能访问主机的这个端口,则可能是因为防火墙的原因,需要根据使用的 Linux 发行版对应的防火墙软件来放行这个端口

第七行则是将该容器放置在后台运行,使得 “docker run” 命令只输出该容器的 ID。

第八行则是指定运行哪一个镜像的哪一个标签,这里则是使用 mysql 镜像的 5.7 标签,mysql 镜像的具体标签可以去它的镜像仓库页面去查找:https://hub.docker.com/_/mysql?tab=tags

在执行了这个命令之后会输出运行的镜像的ID,我们可以根据这个ID或者容器的名字去管理这个容器。

4.管理 mysql 容器

查看运行中的容器:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
0acacf549cd2        mysql:5.7           "docker-entrypoint.s…"  4 seconds ago       Up 4 seconds        33060/tcp, 0.0.0.0:13306->3306/tcp   my-mysql

启动指定名称的容器:

$ docker start my-mysql

停止指定名称的容器:

$ docker stop my-mysql

查看指定名称的容器的日志:

$ docker logs my-mysql

运行指定的容器中的终端:

$ docker exec -it  my-mysql /bin/bash

运行指定容器中的 mysql 客户端连接容器中的数据库:

$ docker exec -it my-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"'

MySQL 镜像的官方文档地址为:https://hub.docker.com/_/mysql

5.视频教程

针对本次教程我也录制了视频教程,如有需要可以使用微信扫一扫文章下方左边的二维码或者搜索”sunriseydy”关注本站的微信公众号然后回复"docker_install_mysql"即可获取视频观看链接。


版权说明:
作品 sunriseydy 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
文章内容如未说明均为原创,欢迎转载,但请注明原作者(sunriseydy)和原文链接(https://blog.sunriseydy.top/technology/server-blog/server/docker_install_mysql/)
部分来自互联网的文章,如有侵权,请联系我,24小时内删除,谢谢

手机打开扫一扫即可访问本页面

感谢您的支持,SunriseYDY 会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

日出一点一 | 在探索的路上永不止步

分享到微博 分享到QQ 微信赞赏 在手机上阅读 点赞 2

评论一下呗亲

电子邮件地址不会被公开。 必填项已用*标注