MySQL Docker 不同库用不同账号

在企业级应用中,数据安全和权限管理是非常重要的。MySQL 是一种广泛使用的数据库管理系统,而 Docker 则是一种轻量级的容器化技术。本文将介绍如何在 Docker 中使用 MySQL 并为不同的数据库库分配不同的账号。

环境准备

首先,确保你的系统中已经安装了 Docker 和 Docker Compose。Docker Compose 用于定义和运行多容器 Docker 应用程序。

MySQL Docker 配置

  1. 创建一个名为 docker-compose.yml 的文件,用于定义 MySQL 容器的配置。
version: '3'
services:
  db:
    image: mysql:5.7
    volumes:
      - ./data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydb
      MYSQL_USER: user1
      MYSQL_PASSWORD: password1
    ports:
      - "3306:3306"
  1. docker-compose.yml 文件中,我们定义了一个名为 db 的服务,使用了 MySQL 5.7 镜像。通过 volumes 映射了数据卷,以便持久化数据。restart: always 确保容器在退出后自动重启。environment 部分定义了 MySQL 的环境变量,包括 root 密码、数据库名、用户和密码。

  2. 使用以下命令启动 MySQL 容器:

docker-compose up -d

创建不同的数据库账号

  1. 连接到 MySQL 容器:
docker-compose exec db mysql -uroot -prootpassword
  1. 在 MySQL 命令行中,创建新的数据库和用户:
CREATE DATABASE mydb2;
CREATE USER 'user2'@'%' IDENTIFIED BY 'password2';
GRANT ALL PRIVILEGES ON mydb2.* TO 'user2'@'%';
FLUSH PRIVILEGES;
  1. 退出 MySQL 命令行。

状态图

以下是使用 Mermaid 语法创建的状态图,展示了 MySQL 容器的启动和停止状态。

stateDiagram-v2
    [*] --> Running: Start
    Running --> [*]: Stop

饼状图

以下是使用 Mermaid 语法创建的饼状图,展示了不同数据库用户在系统中的分布。

pie
    "user1" : 40
    "user2" : 30
    "root" : 30

结语

通过本文的介绍,你应该已经了解了如何在 Docker 中使用 MySQL 并为不同的数据库库分配不同的账号。这种方法可以提高数据安全性和权限管理的灵活性。在实际应用中,你可以根据需要创建更多的数据库和用户,以满足不同的业务需求。