8、mysql 5.7 docker 快速安装详解

官方文档: mysql docker安装文档
dockerFile:mysql:5.7.29

说明

在常见的Java Web项目中,业务数据都需要存储在关系型数据库中。当前比较主流的关系型数据库包含mysql、oracle等,本文记录通过 docker 快速搭建 mysql 5.7 数据库的过程。

一. 镜像获取

通过docker hub官方搜索并选择合适的镜像版本,我们这里使用 mysql:5.7.29版本

docker pull mysql:5.7.29

二. 容器创建

1、映射目录分配

根据dockerFile中的VOLUME设置,映射规划如下:

/devops/mysql/data:/var/lib/mysql
/devops/mysql/conf:/etc/mysql/conf.d

2、端口映射规划

mysql 容器默认对外服务端口为 3306devops体系中的映射规划如下:

3306:3306

3、容器创建

目录创建脚本

mkdir -p /devops/mysql/conf /devops/mysql/data

容器创建脚本 (不执行)

docker run -d --name mysql --restart always \
       -p 3306:3306 \
       -v /devops/mysql/data:/var/lib/mysql \
       -v /devops/mysql/conf:/etc/mysql/conf.d \
       -e MYSQL_ROOT_PASSWORD=Passw0rd \
       mysql:5.7.29

三. devops 添加 mysql

根据容器创建规划,mysqldocker-compose语法模板如下,添加到devopsdocker-compose.yml文件中即可。

  mysql: 
    container_name: mysql
    image: mysql:5.7.29
    restart: always
    ports: 
      - "3306:3306"
    volumes:
      - "./mysql/data:/var/lib/mysql/"
      - "./mysql/conf:/etc/mysql/conf.d"
    environment:
      MYSQL_ROOT_PASSWORD: Passw0rd

注意:MYSQL_ROOT_PASSWORD 为 mysql 的 root 密码,大家可以根据需要自行修改

四. 上传配置文件

查看docker版本mysql 5.7.29的配置文件存放规则,我们发现/etc/mysql/conf.d/目录下的文件会在mysql启动时被作为配置文件加载。那么,当我们需要人为调整mysql配置文件时,可以将本地编辑好的配置文件存放在它的映射目录/devops/mysql/conf下。

为了解决MySQL客户端或服务端中文编码不一致问题,我们在mysql.cnf配置文件中设置中文编码使用utf8mb4。并通过sftp命令将mysql.cnfmysqldump.cnfdocker.cnf三个配置文件上传到映射目录
8、mysql 5.7 docker 快速安装详解_第1张图片
启动容器,检查数据库默认的中文编码,如下图所示:
8、mysql 5.7 docker 快速安装详解_第2张图片
注意:我们将/etc/mysql/conf.d映射到宿主机目录后,mysql将不再默认生成配置文件,这里我们需要先将配置文件重新上传到映射目录,再启动docker-compose创建容器。
配置文件存放目录: https://gitee.com/tysite/devops/tree/master/mysql/conf

五. 创建 tysitedb 库

完成 docker mysql 5.7.29的安装后,我们可以创建自己的SCHEMA供开发环境使用。
这里以 tysitedb 为例,创建SCHEMA并授权给tysite用户。

1、进入mysql容器
docker exec -it mysql /bin/bash
2、登录mysql

使用root用户登录mysql,密码为MYSQL_ROOT_PASSWORD设置的内容。

mysql -u root -p
3、创建 SCHEMA
CREATE SCHEMA `tysitedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
4、创建用户 tysite (密码自行调整)
CREATE USER 'tysite'@'%' identified by '******';
5、授权
grant all privileges on tysitedb.* to 'tysite'@'%' with grant option;
flush privileges;

8、mysql 5.7 docker 快速安装详解_第3张图片
创建数据库完成后,可以通过workbanch连接验证数据库访问。(workbanch安装请点这里)

你可能感兴趣的:(DevOps,开发环境)