M1 Docker 安装 MySQL

概述

MySQL是一种广泛使用的关系型数据库管理系统,通过使用Docker技术,我们可以轻松地在Mac M1芯片上安装和运行MySQL。本文将介绍在M1芯片上使用Docker安装MySQL的步骤,并演示如何连接和使用MySQL数据库。

准备工作

在开始之前,我们需要确保已经安装了Docker Desktop并启动了Docker服务。如果尚未安装Docker,请先访问官方网站下载并安装Docker Desktop。

安装MySQL容器

首先,我们需要从Docker Hub上获取MySQL的镜像,并在本地创建一个MySQL容器。

打开终端并输入以下命令:

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

上述命令中的参数解释如下:

  • -p 3306:3306:将容器内的MySQL服务端口映射到主机的3306端口,以便我们可以通过该端口连接MySQL。
  • --name mysql:指定容器的名称为mysql。
  • -e MYSQL_ROOT_PASSWORD=123456:设置MySQL的root用户密码为123456。
  • -d mysql:latest:使用最新版本的MySQL镜像创建容器,并在后台运行。

当容器成功创建并启动后,我们可以通过以下命令查看MySQL容器的状态:

docker ps -a

连接MySQL数据库

要连接MySQL数据库,我们可以使用MySQL客户端工具,如MySQL Shell或phpMyAdmin。在本文中,我们将演示使用MySQL Shell连接到MySQL数据库。

首先,我们需要安装MySQL Shell。请访问MySQL官方网站并下载适用于Mac M1芯片的MySQL Shell安装程序,并按照提示进行安装。

安装完成后,在终端中输入以下命令以启动MySQL Shell并连接到MySQL数据库:

mysqlsh root@localhost:3306

上述命令中的参数解释如下:

  • root:MySQL的root用户。
  • localhost:3306:MySQL数据库的主机和端口。

成功连接后,我们可以执行各种MySQL命令来管理和查询数据库。以下是一些常用的MySQL Shell命令示例:

  • show databases;:显示所有数据库。
  • use database_name;:切换到指定的数据库。
  • show tables;:显示当前数据库中的所有表。

使用MySQL数据库

一旦成功连接到MySQL数据库,我们可以使用SQL语句创建表、插入数据和查询数据。

以下是一个简单的示例,演示如何创建一个名为"users"的表,并插入一些用户数据:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);

INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');
INSERT INTO users (id, name, email) VALUES (2, 'Jane Smith', 'jane@example.com');

要查询表中的数据,我们可以使用以下命令:

SELECT * FROM users;

类图

以下是MySQL数据库的简化类图:

classDiagram
    class Database {
        +string connectionUrl
        +string username
        +string password
        +connect()
        +disconnect()
        +executeQuery(query: string)
        +executeUpdate(query: string)
    }

    class MySQLDatabase {
        +connect()
        +disconnect()
        +executeQuery(query: string)
        +executeUpdate(query: string)
    }

    class Application {
        -Database database
        +main()
    }

    Application --> Database
    MySQLDatabase --|> Database

上述类图展示了一个简单的数据库类和应用程序类之间的关系。数据库类封装了与MySQL数据库的连接和查询操作,而应用程序类使用数据库类进行数据访问。

状态图

以下是一个简化的MySQL数据库连接状态图:

stateDiagram
    [*] --> Disconnected
    Disconnected --> Connecting: connect()
    Connecting --> Connected: Connection established
    Connected --> Disconnected: disconnect()

上述状态图展示了MySQL数据库连接的不同状态。初始状态为断开连接状态,当调用连接方法时,进入连接中状态,并最终成功建立连接进入已连接状态。在已连接状态下,如果