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

embedded/2024/9/24 22:57:50/

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数据库操作。

在这里插入图片描述


http://www.ppmy.cn/embedded/9673.html

相关文章

一个typescript 5 + rollup 4 打包lib模板仓库实现

前言 昨天在写点什么东西的时候,发现有些逻辑可以搞成一个 npm 模块。 找了下看看,有没有什么好用现成模板用于开发。。发现并没有; 那有需求就解决需求。。 需求 基于当前的流行技术栈选型(rollup 4.x typescript 5.x)提供一个最小化模…

Leetcode 86. 分隔链表

题目链接: 86. 分隔链表 - 力扣(LeetCode)https://leetcode.cn/problems/partition-list/description/ 题目: 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出…

【推理优化】超详细!AIGC面试系列 大模型推理系列(2)

本期问题聚焦于大模型的推理优化技术 本期问题快览 有哪些常见的大模型推理优化技术介绍下通过流水线处理技术来加速大模型推理方案介绍下并行计算技术来加速大模型推理的方案有哪些通过硬件来加速大模型推理的方式?模型量化是如何加速大模型推理的?有哪…

【面试经典 150 | 链表】分隔链表

文章目录 写在前面Tag题目来源解题思路方法一:模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾…

实现Spring底层机制(阶段1—编写自己的Spring容器,扫描包,得到bean的Class对象)

环境搭建抛出问题 1.环境搭建 1.创建maven项目 2.导入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.ap…

多模态之ALBEF—先对齐后融合,利用动量蒸馏学习视觉语言模型表征,学习细节理解与论文详细阅读:Align before Fuse

Align before Fuse: Vision and Language Representation Learning with Momentum Distillation &#xff08;ALBEF&#xff09;在融合之前对齐&#xff1a;利用动量蒸馏进行视觉与语言表示学习 Paper: arxiv.org/pdf/2107.07651.pdf Github: https://github.com/salesforce/…

【ChatGPT】【Gemini】-用Python调用google的Gemini API

用Python调用google的Gemini API 以下是Gemini自己给出的具体步骤和代码&#xff0c;我直接参考一次测试通过&#xff0c;大家可以参考。 Goodmao&#xff1a;Python call gemini API Gemini&#xff1a; Absolutely, calling the Gemini API with Python involves a few st…

Unity学习记录使用frame debugger

首先在window->analyis里找到他 打开 然后点击 play&#xff0c;紧接着点击这里enable他 这时候界面就会被暂停 然后找一个看起来是绘制mesh的命令 可以看见这个mesh detail里还有更详细的信息 顶点数&#xff0c;面数&#xff0c;使用了什么shader&#xff0c;pass走的…