Docker 中使用 MySQL 命令建库

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。MySQL 是一个广泛使用的开源关系数据库管理系统。在 Docker 中使用 MySQL 可以让我们更容易地部署和管理数据库。本文将介绍如何在 Docker 中使用 MySQL 命令创建数据库。

环境准备

首先,确保你已经安装了 Docker。你可以在 Docker 官网下载并安装 Docker。

启动 MySQL 容器

在 Docker 中启动 MySQL 容器,可以使用以下命令:

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7

这条命令做了以下几件事:

  • --name my-mysql:为容器指定一个名字,方便后续操作。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL 的 root 用户密码。
  • -d mysql:5.7:以 detached 模式运行 MySQL 5.7 镜像。

连接到 MySQL 容器

使用以下命令连接到 MySQL 容器:

docker exec -it my-mysql mysql -uroot -p

这条命令做了以下几件事:

  • docker exec:在运行中的容器中执行命令。
  • -it:分配一个伪终端,并保持 STDIN 打开。
  • my-mysql:指定容器的名字。
  • mysql -uroot -p:连接到 MySQL,使用 root 用户。

创建数据库

连接到 MySQL 后,可以使用以下命令创建数据库:

CREATE DATABASE mydb;

这条命令创建了一个名为 mydb 的数据库。

创建用户并授权

接下来,我们可以创建一个新用户,并为该用户授权访问我们刚刚创建的数据库:

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

这三条命令做了以下几件事:

  • CREATE USER:创建一个新用户。
  • GRANT ALL PRIVILEGES:为该用户授权访问 mydb 数据库的所有表。
  • FLUSH PRIVILEGES:刷新权限,使授权立即生效。

类图

下面是一个简单的类图,展示了 MySQL 中的数据库、用户和权限的关系:

classDiagram
    class Database {
        +name string
    }
    class User {
        +username string
        +password string
    }
    class Privilege {
        +database Database
        +user User
    }
    Database "1" --> "*" Privilege : has
    User "1" --> "*" Privilege : has

数据库使用情况

假设我们已经有了一些数据库的使用数据,我们可以用饼状图来展示不同数据库的使用比例:

pie
    title Database Usage
    "Database A" : 386
    "Database B" : 386
    "Database C" : 386
    "Database D" : 386
    "Database E" : 386

结语

通过本文,我们学习了如何在 Docker 中使用 MySQL 命令创建数据库、创建用户并授权。Docker 为我们提供了一个轻量级、可移植的数据库部署方案。同时,我们也了解了如何使用类图和饼状图来展示数据关系和数据分布。希望本文能帮助你更好地使用 Docker 和 MySQL。