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

相关推荐
bloglin999999 小时前
启动容器报错ls: cannot access ‘/docker-entrypoint-initdb.d/‘: Operation not permitted
docker·容器·eureka
yBmZlQzJ10 小时前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节
JH307310 小时前
docker 新手入门:10分钟搞定基础使用
运维·docker·容器
过期动态11 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
一位代码11 小时前
mysql | 常见日期函数使用及格式转换方法
数据库·mysql
天河归来12 小时前
在本地windows电脑使用Docker搭建xinference环境
docker·语言模型·容器
杰克尼12 小时前
mysql_day01
数据库·mysql
算力魔方AIPC13 小时前
使用 Docker 一键部署 PaddleOCR-VL: 新手保姆级教程
运维·docker·容器
Ghost Face...14 小时前
Docker实战:从安装到多容器编排指南
运维·docker·容器