使用 Docker Compose 安装 MySQL 以及所遇到的问题解决

简介

本文章将详细介绍如何使用 Docker Compose 安装 MySQL 以及所遇到的问题解决。

相关文章参考:
Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)

版本如下

名称版本
MySQL8.1.0
CentOS7.6+
Docker20.10.22
Docker Compose1.23.1

1. 安装步骤

整体文件结构:

[root@localhost mysql] tree -L 1
.
├── data
├── docker-compose.yml
└── log

1.1 数据持久化

# 创建持久化文件夹
[root@localhost mysql] mkdir -p log
[root@localhost mysql] mkdir -p data
[root@localhost mysql] chmod +777 log
[root@localhost mysql] chmod +777 data

1.2 创建docker compose文件

#创建docker compose文件
[root@localhost mysql] vim docker-compose.yml

具体内容如下:

version: "3.7"

networks:
  mysql:   #对应“mysql网桥”
    external: true

services:
  mysql:
    image: mysql:8
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: "root" # root密码
      # MYSQL_USER: test  # 新用户账号
      # MYSQL_PASSWORD: root # 新用户 密码
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql
      - ./log:/var/log/mysql
    networks:
      - mysql #网桥 这里的网桥名称“mysql”

1.3 安装使用

# 执行安装
[root@localhost mysql] docker network create mysql
a4465fd58291621302219908b7407a8a4586621b6817162cc359e1286fec8a6a
[root@localhost mysql] docker-compose up -d
Creating mysql ... done
[root@localhost mysql]

Navicat 主机ip:3306
root账户密码也为root

在这里插入图片描述

2. 问题解决

2.1 网桥创建报错

直接执行 docker-compose up -d 报错:
ERROR: Network mysql declared as external, but could not be found.

[root@localhost mysql] docker-compose up -d
ERROR: Network mysql declared as external, but could not be found. Please create the network manually using `docker network create mysql` and try agai

解决办法:
按照报错提示先执行命令 docker network create mysql
再次 docker-compose up -d 即可

2.2 升级MySQL版本报错

MySQL镜像版本升级为最新(mysql:latest)后重新执行 docker-compose up -d 报错:
[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.

023-08-03T02:17:11.613448Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2023-08-03T02:17:11.613472Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2023-08-03T02:17:11.613582Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-08-03T02:17:11.613960Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.1.0)  MySQL Community Server - GPL

解决办法:
1.删除MySQL容器

[root@localhost mysql] docker stop mysql
[root@localhost mysql] docker rm mysql

2.删除映射的持久化目录 data (./data:/var/lib/mysql)

[root@localhost mysql] rm -rf data

3.重新创建持久化文件夹和容器

[root@localhost mysql] mkdir -p data
[root@localhost mysql] chmod +777 data
[root@localhost mysql] docker-compose up -d
Creating mysql ... done
[root@localhost mysql] docker logs -f mysql # 查看日志是否安装成功

相关文章参考:
Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值