使用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数据库。希望这篇文章能帮助你顺利搭建自己的数据库服务!

相关推荐
77qqqiqi1 小时前
解决忘记修改配置密码而无法连接nacos的问题
java·数据库·docker·微服务
Cyber4K1 小时前
MySQL--组从复制的详解及功能演练
运维·数据库·mysql·云原生
MMMMMMMMMMemory2 小时前
使用 MySQL Shell 进行 MySQL 单机到 InnoDB Cluster 的数据迁移实践
mysql
啊森要自信3 小时前
【MySQL 数据库】MySQL索引特性(二)页目录&&(B和B+树)&&(非)聚簇索引 && 索引操作
android·数据库·sql·mysql·adb·数据库架构
东风微鸣3 小时前
GitOps:云原生时代的革命性基础设施管理范式
docker·云原生·kubernetes·可观察性
FJW0208144 小时前
Mysql集成技术
linux·mysql·云原生
孟婆来包棒棒糖~5 小时前
Docker快速入门
运维·spring boot·docker·容器·tomcat
周航宇JoeZhou11 小时前
JP3-3-MyClub后台后端(二)
java·mysql·vue·ssm·springboot·项目·myclub
老友@12 小时前
RabbitMQ 延时队列插件安装与使用详解(基于 Delayed Message Plugin)
运维·分布式·docker·rabbitmq·延时队列
-SGlow-13 小时前
MySQL相关概念和易错知识点(3)(表内容的CURD、内置函数)
linux·运维·服务器·数据库·mysql