express学习笔记7 - docker跟mysql篇
安装Docker和Navicat
Docker
进官⽹https://docs.docker.com/get-docker/ 选择机型安装即可。
Navicat(也可以在网上找个破解版本)
进官⽹https://www.navicat.com/en/products/navicat-premium

安装完之后连接新建⼀个数据库连接
然后再⾥⾯新建⼀个数据库

使⽤Docker安装MySQL
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v
$(pwd)/db:/var/lib/mysql --restart always mysql:8.0
解释:
- -d 表示以后台模式运⾏容器。
- --name mysql 表示为容器指定名字为 mysql。
- -e MYSQL_ROOT_PASSWORD=your_password 表示设置 MySQL 的 root ⽤户密码为123456。
- -v ./db:/var/lib/mysql 表示将 MySQL 数据库⽂件存储到本地当前⽬录下的 db/ ⽬录, 实现数据持久化。
- -p 3306:3306 表示将容器的 3306 端⼝映射到本地的 3306 端⼝,以便通过本地访问 MySQL。
- --restart always 表示容器启动后,如果异常退出,Docker 会⾃动重启容器。
- mysql:8.0 表示使⽤8.0版本的 MySQL 镜像。
执⾏以上命令就能安装并运⾏MySQL。 安装成功会⽣成我们的数据库:
Docker这边:
说明我们的服务已经启动了。
提醒:下⼀章我们就开始要开始设计数据表,如果不熟悉mysql的⼩伙伴可以先去了解⼀下mysql。
Mysql表设计
如果不了解Mysql的,建议先花点时间看看Mysql的基础。以下列举⼀下建表需要的注意事项: 主键设计:每个表都应该有⼀个主键来唯⼀标识每⼀⾏数据,常⻅的主键类型包括⾃增⻓整数
- UUID 和字符串等。主键应该是不可变的,不应该在表中被修改。⽐如我们的表id 数据类型选择: 常⻅的数据类型包括整数、浮点数、⽇期时间、字符串等
- 索引设计:⼀般来说,主键和外键字段都应该创建索引,其他需要经常查询或者⽤于排序、分组等 操作的字段也应该考虑创建索引。
- 规范命名:表、字段、索引等命名需要规范化,遵循⼀定的命名规则和命名规范。
⽤户表 users
⾸先我们需要⼀个⽤户表,有以下字段:
这⾥也提供了 .sql ⽂件
CREATE TABLE `users` (`id` int unsigned NOT NULL AUTO_INCREMENT,`avatar` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '头像',`nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '昵称',`phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '⼿机号',`password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码',`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
常⽤查看数据库命令
1、:进⼊数据库容器
docker ps
2、连接mysql
docker exec -it mysql mysql -uroot -p123456

3、看⼀下当前数据库
show databases;

4、创建数据库
mysql> create database lease;
Query OK, 1 row affected (0.03 sec)
5、切换数据库
mysql> use lease;
Database changed
6. 创建表
mysql> 这⾥直接复制我们.sql⽂件的代码,回⻋即可
7. 查看数据表
mysql> show tables;
+-----------------+
| Tables_in_lease |
+-----------------+
| users |
+-----------------+
8、删库
mysql> drop database lease;
Query OK, 4 rows affected (0.11 sec)
相关文章:
express学习笔记7 - docker跟mysql篇
安装Docker和Navicat Docker 进官⽹https://docs.docker.com/get-docker/ 选择机型安装即可。 Navicat(也可以在网上找个破解版本) 进官⽹https://www.navicat.com/en/products/navicat-premium 安装完之后连接新建⼀个数据库连接 然后再⾥⾯新建⼀个数…...
Leetcode(一):数组、链表部分经典题目详解(JavaScript版)
数组、链表部分算法题 一、数组1. 二分查找2. 移除数组元素3. 有序数组的平方4. 长度最小的子数组5. 螺旋矩阵 二、链表1. 删除链表元素2. 设计链表3.反转链表4.两两交换链表中的节点5.删除链表倒数第n个节点6.环形链表 提前声明:本博客内容均为笔者为了方便个人理解…...
内网穿透的底层原理是什么
目录 内网穿透的功能 内网穿透的底层原理 内网穿透的功能 前段时间研究了一下内网穿透,果真是一个神奇的技术,就拿企业级内网穿透-神卓互联来说,在需要在本地安装一个神卓互联客户端,简单设置一下服务应用的端口号,就…...
Bash配置文件
当Bash以登录Shell启动的时候,会首先读取并执行文件“/etc/profile”中的命令。 接着,Bash会依次查找文件“~/.bash_profile”,“~/.bash_login”,“~/.profile”,读取并执行找到的第一个文件中的命令。也就是说&…...
写Acknowledgement的时候,latex日志出现警告
用latex写论文的时候,\section{Conclusion}下面添加 \backmatter \bmhead{Acknowledgments}时报错:错误log: \bmhead Package hyperref Warning: Difference (4) between bookmark levels is greater than one, level....错误原因ÿ…...
GCC生成map文件
要生成GCC的map文件,可以使用以下指令: gcc <source_files> -Wl,-Map<output_file>.map 其中, <source_files>是要编译的源文件列表,<output_file>是生成的map文件的名称-Wl选项告诉GCC将后面的参数传…...
IOS看书最终选择|源阅读转换|开源阅读|IOS自签
环境:IOS想使用 换源阅读 问题:换新手机,源阅读下架后,没有好的APP阅读小说 解决办法:自签APP 转换源仓库书源 最终预览 :https://rc.real9.cn/ 背景:自从我换了新iPhone手机,就无法…...
easyui实用点
easyui实用点 1.下拉框(input框只能选不能手动输入编辑) data-options"editable:false"//不可编辑2.日期框,下拉框,文本框等class class"easyui-datebox"//不带时分秒 class"easyui-datetimebox"…...
算法训练营第五十六天||● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇
● 583. 两个字符串的删除操作 这道题涉及到两个字符串删除操作,注意递推公式,理解不到位,需要再次做 确定dp数组(dp table)以及下标的含义 dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾…...
C语言每日一题:10.不使用+-*/实现加法+找到所有数组中消失的数。
题目一: 题目链接: 思路一: 1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。 举例:5(0101)2(0010)进行异或等于:7…...
LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
1、问题: https://github.com/CocoaPods/Specs.git/:LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443的解决办法 出现这个问题的原因基本都是代理的问题: 只需要加上代理就可以了: #http代理 git conf…...
JS数组的详解与使用
什么是数组? 数组是一种有序的集合,有长度和索引,以及身上有许多的API方法 面试题:数组和伪数组的区别:数组和伪数组都有长度和索引,区别是数组身上有许多的API方法 而伪数组身上不存在这些API方法创建数组…...
c++ / python / java / PHP / SQL / Ruby / Objective-C / JavaScript 发展史
c发展史 C是由丹尼斯里奇和肯汤普森在1970年代早期开发的C语言的扩展。C最初被称为“C with Classes”,是在1980年代初期由比雅尼斯特劳斯特鲁普开发的。 1983年,斯特劳斯特鲁普将C with Classes重新命名为C。在1985年,C编译器的第一个版本被…...
Linux第一个小程序-进度条(缓冲区概念)
1.\r和\n C语言中有很多字符 a.可显字符 b.控制字符 对于回车其实有两个动作,首先换行,在将光标指向最左侧 \r :回车 \n:换行 下面举个例子: 把\n去掉会怎样 什么都没输出。为什么? 2.缓冲区概念 观察下两个…...
CentOS7环境安装tomcat
环境准备 由于是在练习,为了方便,我们可以 1.关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service 2.关闭selinux 在/etc/selinux/config中,设置: SELINUXdisabled 3.准备jdk---》jdk-8u333-li…...
C# 中使用ValueTask优化异步方法
概要 我们在开发过程中,经常使用async的异步方法,但是有些时候,异步的方法中,可能包含一些同步的处理。本文主要介绍通过ValueTask这个struct,优化异步处理的方法性能。 代码及实现 有些时候我们会缓存一些数据在内…...
KVM创建新的虚拟机(图形化)
1.启动kvm管理器 [rootlocalhost ~]# virt-manager2.点击创建虚拟机 3.选择所需os安装镜像 4.选择合适的内存大小和CPU 5.创建所需磁盘 6.命名创建的虚拟机...
正则表达式在格式校验中的应用以及包装类的重要性
文章目录 正则表达式:做格式校验包装类:在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中,掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开,帮助读者更好地面对面试挑…...
Docker使用之java项目工程的部署
同样本文的基础建立在已在目标服务器(以linux为示例)上安装了docker,安装教程请移步度娘 若容器存在请先停止,在删除,然后删除镜像重新编译 //停止容器 sudo docker stop datatransfer//删除容器 sudo docker rm dat…...
3ds Max如何进行合成的反射光泽通道渲染
推荐: NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 准备场景 步骤 1 打开 3ds Max。smart_phone.max打开已 随教程提供。 打开 3ds Max 步骤 2 按 M 打开材质编辑器。选择空材料 槽。单击漫射通道。它将打开材质/贴图浏览器窗口。选择位图࿰…...
Windows右键菜单终极管理指南:ContextMenuManager让你的电脑更高效
Windows右键菜单终极管理指南:ContextMenuManager让你的电脑更高效 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单是日常操作中不可…...
Unity GAS技能框架实战:客户端预测与策划配置系统
1. 这不是又一个“Hello World”式GAS教程——它解决的是你项目里真正卡住进度的骨架问题 如果你正在用Unity开发中大型动作游戏、RPG或ARPG,大概率已经听说过Gameplay Ability System(GAS),也大概率在某个深夜对着官方文档发呆&a…...
X-TRACK开源GPS自行车码表终极指南:从零构建你的智能骑行导航系统
X-TRACK开源GPS自行车码表终极指南:从零构建你的智能骑行导航系统 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK X-TRACK是一款功能强大的开源…...
Poppins几何字体:如何让拉丁文与天城体在同一个视觉世界里和谐共舞?
Poppins几何字体:如何让拉丁文与天城体在同一个视觉世界里和谐共舞? 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 当你的产品需要同时面向印度用户和全…...
APT32F110开发板串口printf重定向与动态文本显示实战
1. 项目概述:从“Hello World”到“花式表白”的嵌入式浪漫作为一名在嵌入式领域摸爬滚打了十多年的老工程师,我调试过的开发板、写过的“Hello World”程序,估计能绕办公室好几圈。大多数时候,我们的工作就是和数据手册、寄存器、…...
大模型零样本学习新突破:USP自适应提示方法原理与实践
1. 项目概述:当大模型“自学成才”成为可能作为一名长期在自然语言处理(NLP)一线摸爬滚打的从业者,我见过太多关于大语言模型(LLMs)的“神话”与“现实”之间的落差。其中最让我头疼的一个现实就是…...
RV1126B平台I2C驱动ADS1115实战:从硬件接线到应用层代码
1. 项目概述与核心思路最近在折腾瑞芯微RV1126B这块板子,用的是EASY-EAI Nano-TB开发套件。项目里需要接几个传感器和一个小屏幕,I2C总线是绕不开的。虽然Linux内核已经把I2C驱动封装得很好了,但真要在应用层把它用起来、用稳了,特…...
从零构建工业级垃圾邮件分类器:端到端实战指南
1. 项目概述:从零构建一个真正能用的垃圾邮件分类器你打开邮箱,每天收到几十封邮件,其中总混着几封标题耸动、内容空洞、发件人可疑的“优惠券”“中奖通知”“账户异常提醒”——它们不是广告,而是典型的垃圾邮件(Spa…...
面部SDF阴影锯齿问题的探索
近期做的一些工作涉及到面部SDF阴影,网上普遍做法是不做插值,直接Step硬性裁剪,不是很理解为什么不用插值,于是我通过SmoothStep做了简单修改,看下效果。 看上去还可以是因为gif有压缩,但面部SDF阴影做插值…...
2026 国内 ChatGPT 镜像站推荐
📖 国内直接访问,支持 GPTs、绘图、文件分析,对话数据隔离 ✅ 写方案/周报,描述需求直接生成,5分钟搞定 ✅ 代码报错,粘贴进去秒出解决方案 ✅ 读文件/PDF,上传即可提问,不用逐字看…...
