通过Docker新建并使用MySQL数据库

发布于:2024-04-26 ⋅ 阅读:(19) ⋅ 点赞:(0)

1. 安装Docker

确保您的系统上已经安装了Docker。可以通过以下命令检查Docker是否安装并运行:

systemctl status docker

如果没有安装或运行,请按照官方文档进行安装和启动。

2. 拉取MySQL镜像

从Docker Hub拉取MySQL官方镜像。这里以MySQL 5.7版本为例:

docker pull mysql:5.7

3. 启动MySQL容器

使用以下命令启动一个新的MySQL容器,并设置root密码:

docker run --name mysql5.7-dev -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

通过docker ps查看状态
在这里插入图片描述

这里,--name 指定容器名称,-p 指定端口映射(将容器的3306端口映射到宿主机的3307端口),-e 用于设置环境变量,这里设置了MySQL的root密码。

4. 连接到MySQL

启动容器后,可以使用以下命令进入MySQL命令行:

docker exec -it mysql5.7-dev mysql -u root -p

输入密码(上面设置的123456)后,即可进入MySQL命令行。

在这里插入图片描述
这里输入密码时,不会显示,是正常现象。

5. 创建数据库

在MySQL命令行中,创建一个新的数据库:

CREATE DATABASE my_database;

在这里插入图片描述

6. 创建用户并授权

为了从外部连接到MySQL,需要创建一个用户并授权:

CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON my_database.* TO 'admin'@'%';
FLUSH PRIVILEGES;

在这里插入图片描述

这里创建了一个名为admin,密码为123456的用户,并授权该用户访问my_database数据库。

7. 设置远程连接

为了让外部工具(如Navicat)能够连接到MySQL,需要修改MySQL配置,允许远程连接。

首先,退出MySQL命令行,然后重新进入容器并编辑MySQL配置文件:

docker exec -it mysql5.7-dev bash

接着,编辑/etc/mysql/my.cnf文件,找到[mysqld]部分,并添加以下内容:

[mysqld]
bind-address = 0.0.0.0

保存并退出编辑器,重启MySQL服务:

docker restart mysql5.7-dev

8. 使用外部工具连接

现在,可以使用任何支持MySQL的客户端工具(如Navicat)连接到数据库。输入宿主机的IP地址和映射的端口(例如,localhost:3307),使用步骤6中创建的用户名和密码进行连接。

使用步骤:
我们来创建数据库和表,然后添加一些数据:

  1. 连接到MySQL:使用以下命令连接到MySQL命令行:

    docker exec -it mysql5.7-dev mysql -u root -p
    

    输入您设置的root密码后,您将进入MySQL命令行界面。
    在这里插入图片描述

  2. 创建数据库:在MySQL命令行中,创建一个新的数据库example_db

    CREATE DATABASE example_db;
    
  3. 选择数据库:选择刚刚创建的数据库:

    USE example_db;
    
  4. 创建表:创建一个名为users的表,用于存储用户数据。这里我们假设用户具有idusernameemail字段:

    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50),
        email VARCHAR(100)
    );
    
  5. 添加数据:向users表中插入一些用户数据:

    INSERT INTO users (username, email) VALUES
        ('user1', 'user1@example.com'),
        ('user2', 'user2@example.com'),
        ('user3', 'user3@example.com');
    
  6. 查看数据:使用SELECT语句查看users表中的所有数据:

    SELECT * FROM users;
    

    这将检索users表中所有行的数据,并将其显示在命令行中。
    在这里插入图片描述

通过这些步骤,您已经成功创建了一个新的数据库,向其中的表添加了一些新数据,并查看了添加的数据。您可以根据您的需要修改这些示例,并探索更多MySQL数据库操作。

在这里插入图片描述