【docker】docker-compose实战之MySQL安装与配置

唠嗑部分

首先说一下,MySQL是否适合容器化?

  • 数据库首先要解决数据的持久化问题,以确保服务宕机之后数据不会丢失,docker提供的数据卷虽然可以让数据保存在宿主机上,但是容器的 volumn数据卷的设计是围绕 Union FS镜像层提供持久存储,数据安全缺乏保证。

  • 如果容器突然崩溃,数据库未正常关闭,可能会损坏数据。另外,容器里共享数据卷组,对物理机硬件损伤也比较大。

  • MySQL属于关系型数据库,对IO要求较高。当一台物理机跑多个时,IO就会累加,导致IO瓶颈,大大降低MySQL的读写性能。

在实际开发过程中啊也会遇到类似问题,就小白最近来讲,事情是这样的,涉及到接口压测,期初呢是测试环境在压测,结果不太理想,然后将压测任务转移到开发环境进行,因为测试环境的数据库是容器化的,开发环境是物理机做的集群(涉及到工作相关,不再多说)

那么,MySQL就不适合容器化了嘛?

当然不是,可以将MySQL的从节点容器化,增加节点的实例数,从而增加吞吐量

当然以上问题是企业解决的问题,与我们开发人员并没有多大关系,我们在自己平时学习的过程中,或者自己做项目时,MySQL容器化还是很方便的

下面就让我们一起来搭建MySQL吧

操作步骤

在/root目录下创建如下目录

docker-compose-mysql/data(MySQL数据持久化挂载目录),docker-compose-mysql/conf(MySQL自定义配置挂载目录)

cd /root
mkdir -p docker-compose-mysql/{data,conf}

授权(避免持久化数据目录权限不足而失败)

chown -R mysql:mysql docker-compose-mysql/data

创建自定义的配置文件mysql.cnf

vim docker-compose-mysql/conf/mysql.cnf

配置如下(主要是字符集配置)

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

在docker-compose-mysql目录下创建docker-compose.yml文件,内容如下

version: "3.1"
services:
  mysql1:
    container_name: docker-compose-mysql
    image: mysql:5.7
    ports:
      - "3310:3306"
    volumes:
      - /root/docker-compose-mysql/conf/:/etc/mysql/conf.d/
      - /root/docker-compose-mysql/data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root

在docker-compose-mysql目录下执行如下命令,运行容器

docker-compose up -d

image-20230227145537507

测试&结语

使用Windows命令行或Navicat连接MySQL,我的ip是10.10.10.10

使用如下命令查看字符集,出现下图即可,说明挂载的配置文件生效了

show variables like '%character%';

image-20230227145815528

问题:不知道大伙有没有发现,之前我们在 安装MySQL主从的时候,做了这么一件事,安装后修改了MySQL root用户的连接权限(默认root账户只能本机连接),但是docker容器跑的MySQL却没有,这是为啥呢?

解释一下,我认为这跟我们拉取的MySQL镜像有关,作者制作MySQL镜像的时候已经帮我们解决了,docker跑的MySQL root用户默认就是%,看下图

image-20230227150212391

到此,docker-compose安装MySQL就结束了

  • 关于docker章节,后续我们还会更新常用软件的安装,敬请期待
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小白.

感谢老板,祝老板今年发大财!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值