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
  1. 创建表

    mysql> 这⾥直接复制我们.sql⽂件的代码,回⻋即可

  2. 查看数据表

    mysql> show tables;
    +-----------------+
    | Tables_in_lease |
    +-----------------+
    | users |
    +-----------------+

8、删库

复制代码
mysql> drop database lease;
Query OK, 4 rows affected (0.11 sec)
相关推荐
handler018 小时前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
电子云与长程纠缠8 小时前
UE5 两种方式解决Decal Actor贴花拉伸问题
学习·ue5·游戏引擎
red_redemption9 小时前
自由学习记录(172)
学习·cache line 64b·重用距离
阿荻在肝了9 小时前
Agent学习六:LangGraph学习-持久化与记忆一
python·学习·agent
寒秋花开曾相惜11 小时前
(学习笔记)4.1 Y86-64指令集体系结构(4.1.4 Y86-64异常&4.1.5 Y86-64程序)
开发语言·jvm·数据结构·笔记·学习
莹宝思密达12 小时前
【AI学习】 playwright-cli + SKILL 替换 chrom-devTools-MCP
学习
cyr___12 小时前
Unity教程(二十七)技能系统 黑洞技能(下)黑洞状态
学习·游戏·unity·游戏引擎
Theodore_102212 小时前
深度学习(15):倾斜数据集 & 精确率-召回率权衡
人工智能·笔记·深度学习·机器学习·知识图谱
不会聊天真君64712 小时前
JavaScript基础语法(Web前端开发笔记第三期)
前端·javascript·笔记
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.13 小时前
Redis主从复制配置全攻略
数据库·redis·笔记