使用Docker在Ubuntu 22.04上部署MySQL数据库的完整指南

使用Docker在Ubuntu 22.04上部署MySQL数据库的完整指南

在现代应用开发中,使用Docker来部署数据库已成为一种流行的做法。本文将详细介绍如何在Ubuntu 22.04系统上使用Docker部署最新版本的MySQL数据库,包括关键注意事项、详细步骤、闭坑指南以及总结。

部署重点注意事项

  1. 数据持久化:确保MySQL数据存储在宿主机上,以防止数据丢失。

  2. 环境变量安全:设置强密码并妥善管理数据库用户和权限。

  3. 自定义配置:根据生产需求调整MySQL配置,以优化性能和安全性。

  4. 网络安全:限制对数据库的访问,使用Docker网络隔离服务。

  5. 监控与日志管理:定期查看日志文件,使用监控工具跟踪数据库性能。

  6. 定期备份:制定备份计划,以防止数据丢失。

详细部署步骤

1. 安装Docker和Docker Compose

首先,确保你的Ubuntu系统上安装了Docker和Docker Compose。可以通过以下命令进行安装:

bash 复制代码
sudo apt update
sudo apt install docker.io docker-compose -y

2. 创建项目目录

接下来,创建一个用于存放MySQL配置文件和数据的目录:

bash 复制代码
mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf

3. 创建MySQL配置文件(可选)

如果需要自定义MySQL配置,可以在~/mysql/conf目录下创建一个名为my.cnf的配置文件。以下是一个示例配置:

ini 复制代码
[mysqld]
default-authentication-plugin=mysql_native_password
max_connections=200

4. 创建Docker Compose文件

~/mysql目录下创建一个名为docker-compose.yml的文件,内容如下:

yaml 复制代码
version: '3.8'

services:
  mysql:
    container_name: db_mysql
    image: mysql:latest  # 使用最新版本的MySQL
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: devops666  # 设置root用户密码
      MYSQL_DATABASE: mydb               # 可选:创建初始数据库
      MYSQL_USER: user                   # 可选:创建普通用户
      MYSQL_PASSWORD: userpassword       # 可选:普通用户密码
      TZ: Asia/Shanghai                  # 设置时区
    volumes:
      - ./data:/var/lib/mysql            # 持久化数据
      - ./logs:/var/log/mysql            # 持久化日志(可选)
      - ./conf/my.cnf:/etc/mysql/my.cnf  # 挂载自定义配置文件(可选)
    ports:
      - "3306:3306"                      # 映射端口

5. 启动MySQL服务

在终端中导航到~/mysql目录并运行以下命令启动MySQL服务:

bash 复制代码
docker-compose up -d

6. 验证MySQL服务是否正常运行

使用以下命令检查容器状态:

bash 复制代码
docker ps

你应该能看到名为db_mysql的容器正在运行。

7. 连接到MySQL数据库

可以使用MySQL客户端连接到数据库:

bash 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

输入之前设置的密码(devops666)以访问MySQL。

闭坑指南

  • 权限问题:如果遇到权限问题,确保宿主机上的数据目录具有正确的读写权限。可以使用以下命令更改权限:

    bash 复制代码
    sudo chown -R 1000:1000 ~/mysql/data
  • 连接失败:如果无法连接到MySQL,请检查防火墙设置和端口映射是否正确。

  • 容器重启问题:如果容器频繁重启,检查MySQL日志以获取错误信息,可以通过以下命令查看日志:

    bash 复制代码
    docker logs db_mysql

总结

通过以上步骤,你可以在Ubuntu 22.04上成功地使用Docker部署最新版本的MySQL数据库。务必遵循最佳实践,以确保系统的安全性和稳定性。定期备份数据、监控性能,并根据实际需求调整配置,将帮助你在生产环境中更好地管理MySQL数据库。希望这篇文章能帮助你顺利搭建自己的数据库服务!

相关推荐
卷无止境9 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
夜雪一千10 小时前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb
吕海洋13 小时前
目前可用的docker源2026.08
运维·docker·容器
程序员夏洛14 小时前
MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
数据库·mysql
l12586515 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
梦Arrebol15 小时前
Mysql内容及相关实验
数据库·mysql
gsls20080816 小时前
Penpot Docker 部署与 MCP 服务配置文档
运维·docker·容器·原型·penpot
OceanWaves199316 小时前
mysql 8.0.32 磁盘爆满,清理从库日志
数据库·mysql
xrlfreedom17 小时前
大厂 MCP 面试实录:本地 Server 远程化改造中的技术选型与落地实践
docker·json schema·mcp
霸道流氓气质17 小时前
MySQL 大表 DDL 变更 — 原理、方案与实践
android·数据库·mysql