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

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.mzph.cn/diannao/1857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@Autowired和@Resource

Spring支持使用@Autowired、 @Resource、@Inject三个注解进行依赖注入。 @Component(“id”) id可选,告诉spring这是一个组件,交由spring管理, 相当于xml当中的<bean>配置。 @Autowired 默认按类型进行装配(该注解由spring提供,org.springframework.beans.factory.…

笨蛋学C++【C++基础第四弹】

C基础第四弹 11.C日期&时间12.C基本的输入输出12.1I/O库头文件12.2标准输出流&#xff08;cout&#xff09;12.3标准输入流&#xff08;cin&#xff09;12.4标准错误流&#xff08;cerr&#xff09;12.5标准日志流&#xff08;clog&#xff09; 13.C结构体13.1访问结构体成…

防水游泳耳机有哪些?热推榜4大精品游泳耳机,绝不失望!

随着科技的发展和人们对生活品质追求的提高&#xff0c;防水游泳耳机已经成为许多游泳爱好者的必备装备。它们不仅能够在水下提供清晰的音质&#xff0c;还能保证使用者的安全&#xff0c;避免因长时间水下活动而对耳朵造成损伤。然而&#xff0c;面对市场上琳琅满目的产品&…

HarmonyOS ArkUI实战开发-NAPI数据类型

在前两篇文章里笔者简单介绍了 NAPI 工程结构以及生成的 cpp 源码部分&#xff0c;其中 JS 应用层传递过来的数据被封装在了 napi_value 中&#xff0c;使用前先要转换成对应的 C/C 数据类型&#xff0c;C/C 端的数据也要转换成 napi_value 数据类型传递给 JS 应用层&#xff0…

小公司如何实现全员经营?

小公司如何实现全员经营&#xff1f;这是一个值得深入探讨的问题。全员经营不仅意味着每个员工都要参与到公司的经营活动中&#xff0c;还需要他们拥有对公司的责任感和使命感&#xff0c;以实现公司的整体目标。对于小公司而言&#xff0c;实现全员经营更是一个挑战&#xff0…

数字化革新:可视化墨水屏引领基板工艺MSAP贴膜阶段迈向无纸化高端制造应用背景

随着科技的飞速发展和环境保护意识的日益增强&#xff0c;制造印刷电路板&#xff08;PCB&#xff09;行业正面临着提升生产效率、降低资源消耗和推动绿色制造的迫切需求。 问题&#xff1a; PCB生产过程对洁净度要求高&#xff0c;传统打印的纸张会有粉尘&#xff0c;纸屑&am…

使用【node】创建本地接口

在前端开发的过程中&#xff0c;接口相关的信息一般是由后端处理好返回给前端&#xff0c;但是有时候后端不在的时候想自己写个接口进行测试是非常麻烦的。 node是前端一个不错的写接口工具 一 初始化文件 1 在新建一个空的文件夹node 进入空文件夹在&#xff0c;文件夹的地…

社会工程渗透测试教程(二)

原文&#xff1a;annas-archive.org/md5/db987a87e1478b8a8617c263c631b477 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第六章&#xff1a;通过有效的威胁建模确保价值 Richard Ackroyd&#xff0c;随机风暴有限公司高级安全工程师 大多数客户意识到他们需要社会…

第25天:安全开发-PHP应用文件管理包含写入删除下载上传遍历安全

第二十五天 一、PHP文件管理-下载&删除功能实现 1.文件上传&#xff1a; 无过滤机制黑名单过滤机制白名单过滤机制文件类型过滤机制 2.文件删除&#xff1a; unlink() 文件删除函数调用命令删除&#xff1a;system shell_exec exec等 3. 文件下载&#xff1a; 修改HT…

咱们来唠唠2024年参加三下乡社会实践活动怎样联系媒体投稿?

作为一名在校大学生,我深深珍视每一次增长见识、锻炼能力的机会,每年寒暑假期间,我都积极参与学院的“三下乡”社会实践活动。这不仅是我贴近生活、体验基层的大好时机,更是我积累人生经验、拓宽视野的重要途径。每次活动结束后,按照学院的要求,我们需要将实践纪实整理成文,向各…

WebRTC直播间搭建记录

考虑到后续增加平台直播的可能性&#xff0c;笔记记录一下WebRTC相关. 让我们分别分析两种情况下的WebRTC连接建立过程&#xff1a; 情况一&#xff1a;AB之间可以直接通信 1.信令交换&#xff1a; 设备A和设备B首先通过信令服务器交换SDP&#xff08;Session Description Pr…

python国内的镜像源记录

清华大学&#xff08;推荐&#xff09;&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣&#xff08;推荐&#xff09;&#xff1a;http://pypi.douban.com/simple 阿里云&#xff1a;http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.m…

【S32K3 MCAL配置】-7.1-GPT Driver:定时器中断-创建一个周期执行的任务

"><--返回「Autosar_MCAL高阶配置」专栏主页--> 案例背景:常用于周期点亮/关闭一个LED灯;或者精度一般的占空比为50% PWM方波;或者周期调用一个函数,在该函数中我们可以执行一些软件策略(简易的OS)。 目录(共15页精讲,基于评估板: NXP S32K312EVB-Q172,…

就业班 第三阶段(nginx) 2401--4.22 day1 nginx1 http+nginx初识+配置+虚拟主机

一、HTTP 介绍 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据&#xff08;HTML 文件…

2024.4.22力扣每日一题——组合总和 Ⅳ

2024.4.22 题目来源我的题解方法一 回溯记忆化方法二 动态规划 题目来源 力扣每日一题&#xff1b;题序&#xff1a;377 我的题解 方法一 回溯记忆化 和组合总和二、三类似&#xff0c;只是需要使用记忆化记录重复的地方&#xff08;剪枝&#xff09;&#xff0c;不然时间上…

PLC_博图系列☞N=:在信号下降沿置位操作数

、 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数 文章目录 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数背景介绍N&#xff1a; 在信号下降沿置位操作数说明参数示例 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 N 背景介绍 这是一篇关于PLC编程的…

【C语言】strstr函数刨析-----字符串查找

目录 一、strstr 函数介绍 ✨函数头文件&#xff1a; ✨函数原型&#xff1a; ✨函数解读 ✨功能演示 二、函数的原理以及模拟实现 ✨函数原理 ✨函数的模拟实现 三、strstr函数的注意事项 四、共勉 一、strstr 函数介绍 strstr函数是在一个字符串中查找另一个字符…

了解IPS和IDS:这5个差异将改变你的安全观念!

IPS 代表 入侵防御系统&#xff08;Intrusion Prevention System&#xff09;&#xff0c;它是 IDS 的进一步发展&#xff0c;不仅具备检测攻击的能力&#xff0c;还能在检测到攻击后主动采取措施阻止攻击。IPS 通常部署在防火墙和网络设备之间&#xff0c;能够深度感知并检测流…

TCP练习

#include <mystdio.h> #define PORT 8888 #define IP "192.168.124.18" int main(int argc, const char *argv[]) { //创建流式套接字文件 int sfd socket(AF_INET,SOCK_STREAM,0); if(sfd < 0) { perror("socket"); …

计算机服务器中了locked勒索病毒怎么办,locked勒索病毒解密工具流程步骤

随着网络技术的不断应用与发展&#xff0c;越来越多的企业离不开网络&#xff0c;网络大大提升了企业的办公效率水平&#xff0c;也为企业的带来快速发展&#xff0c;对于企业来说&#xff0c;网络数据安全成为了大家关心的主要话题。近日&#xff0c;云天数据恢复中心接到多家…