likes
comments
collection
share

使用Docker安装部署MySQL数据库

作者站长头像
站长
· 阅读数 43

Docker是我们常用的容器引擎,使用Docker来部署和管理我们的常用数据库例如MySQL是非常的方便的。不过使用Docker安装部署MySQL还是有一些需要注意的地方的。

1,拉取MySQL镜像

使用docker pull命令即可拉取:

docker pull mysql

2,创建数据卷

MySQL作为数据库,其中通常存放我们的用户数据,都是很重要的,因此在容器化部署MySQL时,将MySQL的数据文件等等持久化是非常有必要的。

这里我们使用具名挂载的方式挂载MySQL容器的数据卷,方便管理。

先创建三个数据卷,分别用于挂载并持久化MySQL的数据文件配置文件日志这三个目录:

docker volume create mysql-data
docker volume create mysql-config
docker volume create mysql-log

这样,我们就创建了三个数据卷,这三个数据卷分别被命名为mysql-datamysql-configmysql-log,大家也可以自行取名。

3,创建MySQL容器

通过以下命令创建MySQL容器:

docker run -id --name=mysql -v mysql-config:/etc/mysql/conf.d -v mysql-log:/logs -v mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e LANG=C.UTF-8 mysql

这样,就完成了MySQL容器的创建和启动,上述命令的参数意义如下:

  • -id 将MySQL容器挂在后台运行
  • --name=mysql 将容器起名为mysql,大家可以自己起名,该参数可以省略
  • -v mysql-config:/etc/mysql/conf.d 把MySQL容器中的配置文件目录挂载至上述创建的名为mysql-config的数据卷上面,还有两个-v挂载数据卷的参数同理
  • -p 3306:3306 把容器的3306端口映射到宿主机的3306端口,这样才能从外网访问这台机器上的MySQL,若你的数据库只需要从本机访问,就可以去除这个参数
  • -e MYSQL_ROOT_PASSWORD=123456 设置容器环境变量MYSQL_ROOT_PASSWORD的值为123456,这个环境变量表示MySQL的root用户的密码,一定要设置,这里设置了密码为123456,大家可以自定义
  • -e LANG=C.UTF-8 设置容器的语言环境变量LANG值为C.UTF-8,这个必须要设置,否则容器内默认是英文环境,使得MySQL无法存放中文内容

4,修改MySQL配置文件

上述我们已经把创建了数据卷并具名挂载了容器内的MySQL配置目录,只需查看数据卷的位置并修改其中文件即可。

查看数据卷mysql-config的位置:

docker volume inspect mysql-config

使用Docker安装部署MySQL数据库

进入这个目录,可以看到里面有两个默认的MySQL配置文件,使用vim编辑即可,在里面加入自定义的配置。

使用Docker安装部署MySQL数据库

编辑完成记得重启容器:

# 上述创建时容器名为mysql,若为自定义此处换为自己的
docker restart mysql

5,第一次添加用户或者设置外网访问

创建完成容器之后,我们可以先进入这个MySQL容器,并使用root用户连接,创建用户等等。

先进入容器的shell:

docker exec -it mysql bash

这时终端就变成了容器内的终端,使用下列命令即可连接MySQL:

mysql -u root -p

密码就是上述创建容器时你设置的MYSQL_ROOT_PASSWORD容器环境变量的值。

至于配置文件和用户添加等等常用操作这里不再赘述了,可以直接参考这篇博客的修改配置文件添加用户等等部分:juejin.cn/post/698912…

转载自:https://juejin.cn/post/7145084769540243487
评论
请登录