使用 Docker Compose 安装 MySQL 以及所遇到的问题解决
使用 Docker Compose 安装 MySQL 以及所遇到的问题解决
简介
本文章将详细介绍如何使用 Docker Compose 安装 MySQL 以及所遇到的问题解决。
相关文章参考:
Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)
版本如下
| 名称 | 版本 | 
|---|---|
| MySQL | 8.1.0 | 
| CentOS | 7.6+ | 
| Docker | 20.10.22 | 
| Docker Compose | 1.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平台离线一键安装资源包)
 新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐


所有评论(0)