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

相关推荐
@nengdoudou9 小时前
KingbaseES数据库MySQL模式使用 “GROUP BY“
数据库·mysql
卧室小白10 小时前
docker容器
运维·docker·容器
Benszen10 小时前
Docker容器化解决方案
运维·docker·容器
Wait....11 小时前
死锁的知识总结
数据库·mysql
逻辑羊驼11 小时前
VSCODE 连接 MySQL 数据库并执行当地SQL文件
数据库·mysql
夜白宋11 小时前
【Mysql深入】二、事务
数据库·mysql
仙柒41512 小时前
Namespace
运维·docker·容器
Elnaij12 小时前
MySQL数据库入门到进阶!(3)——MySQL数据类型和MySQL表的约束
数据库·mysql
pigs201813 小时前
Docker容器中Kingbase数据库授权到期更换解决方案
数据库·docker·容器
m0_7510186613 小时前
docker 安装 nginx
vue.js·nginx·docker