在开发过程中,数据库的管理和维护是一个重要的环节。MySQL 是最流行的开源关系型数据库之一,而 PHPMyAdmin 是一个基于 Web 的 MySQL 管理工具,可以帮助你轻松管理数据库。通过使用 Docker Compose,你可以快速在本地部署 MySQL 和 PHPMyAdmin,实现高效的数据库开发和管理。接下来,我将为你详细介绍如何完成这一过程。

一、环境准备

在开始之前,确保你的系统已经安装了以下软件:

  • Docker:Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中。你可以通过 Docker 官网 下载并安装 Docker。

  • Docker Compose:Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。它使用 YAML 文件来配置应用的服务、网络和卷。你可以通过 Docker Compose 官网 安装 Docker Compose。

二、创建 Docker Compose 文件

在你的工作目录中,创建一个名为 docker-compose.yml 的文件,内容如下:

version: '3.8'

services:
  db:
    image: mysql:8.0
    container_name: mysql_db
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
    restart: always

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db
      PMA_USER: user
      PMA_PASSWORD: password
    restart: always

volumes:
  db_data:

文件说明:

  • db 服务

    • 使用 mysql:8.0 镜像。

    • 设置环境变量,包括 MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD

    • 将容器的 3306 端口映射到宿主机的 3306 端口。

    • 使用卷 db_data 持久化数据,避免容器重启后数据丢失。

    • 设置 restart: always,确保容器在退出后自动重启。

  • phpmyadmin 服务

    • 使用 phpmyadmin/phpmyadmin 镜像。

    • 设置 depends_on,确保在启动 phpmyadmin 之前先启动 db 服务。

    • 将容器的 80 端口映射到宿主机的 8080 端口。

    • 设置环境变量 PMA_HOSTPMA_USERPMA_PASSWORD,用于连接 MySQL 数据库。

    • 设置 restart: always,确保容器在退出后自动重启。

三、启动服务

在包含 docker-compose.yml 文件的目录中,运行以下命令启动服务:

docker-compose up -d
  • -d 参数表示在后台运行服务。

运行完成后,你可以通过以下命令查看服务状态:

docker-compose ps

四、访问 MySQL 和 PHPMyAdmin

访问 MySQL

你可以通过以下命令连接到 MySQL 数据库:

mysql -h 127.0.0.1 -P 3306 -u user -p

输入密码 password,即可连接到数据库。

访问 PHPMyAdmin

打开浏览器,访问 http://localhost:8080,使用以下凭据登录:

  • 用户名user

  • 密码password

登录后,你将看到 PHPMyAdmin 的管理界面,可以在这里创建、管理和操作数据库。

五、停止和清理服务

当你不再需要运行这些服务时,可以通过以下命令停止并移除服务:

docker-compose down

这将停止并移除所有服务、网络和卷。

六、常见问题解决

在部署过程中,你可能会遇到一些问题,以下是一些常见问题的解决方法:

  • 端口冲突:确保宿主机的 3306 和 8080 端口未被其他应用占用。如果端口冲突,可以修改 docker-compose.yml 文件中的端口映射。

  • 连接失败:确保 MySQL 和 PHPMyAdmin 服务已正确启动,并且环境变量配置正确。

  • 数据丢失:如果数据丢失,检查卷 db_data 是否正确配置,并确保容器未被意外删除。

七、总结

通过使用 Docker Compose,你可以在本地快速部署 MySQL 和 PHPMyAdmin,实现高效的数据库开发和管理。希望这篇指南能帮助你顺利搭建起属于自己的数据库环境,享受开发的乐趣。

如果你有任何问题或需要进一步的帮助,欢迎在评论区留言,我会尽力为你解答。