安装Docker

首先我们去官网下载Docker。然后直接安装,安装后如果会报以下错误

47Node.js操作数据库 - 图1

更加报错提示,猜测可能是我们使用的wsl2版本老了,需要我们自己手动更新一下,我们根据提示去微软官网下载最新版的wsl2安装后即可正常打开。

下载更新包链接

最后安装完成后,在命令行运行下面的代码出现下面内容,那么就证明docker安装成功。

  1. // 查看版本
  2. docker -v
  3. docker run hello-word

47Node.js操作数据库 - 图2

Docker常见命令

  • 运行docker ps查看容器运行状态
  • 运行docker kill mysql1关掉容器
  • 运行docker container start mysql1开启刚关掉的容器
  • 运行docker rm mysql1删掉容器,必要时docker ps可加-f选项
  • 运行docker run启动新容器

注意:

Docker运行的容器,默认不会持久化,如果删掉了容器,那么数据也就没有了,当然它可以数据持久化,可以自行搜索【docker mysql 数据目录】

Docker迁移

首先在其他盘新建一个Docker目录 然后将C:\Program Files\Docker下面的目录复制到新建的文件夹,最后删除 C盘的Docker文件夹,执行下面的命令

  1. mklink /j "C:\Program Files\Docker" "D:\Software\Docker"

然后将image镜像包.docker文件夹也复制到新建的文件夹。

然后执行下面代码

  1. mklink /j .docker D:\\Software\\Docker\\.docker

C:\Program Files\Docker是Docker的默认安装位置,D:\Software\Docker是你希望它安装的位置,一旦设立了联接,Docker的安装器会以为它安装在了C:\Program Files\Docker但实际上所有文件都被安装在了D:\Software\Docker

注1:希望它安装的位置可以是任意硬盘上已有的盘符,但是C:\Program Files里不能有Docker文件夹否则会出现文件夹已存在的警告并联接失败。
注2:需要在管理员模式下运行。

用 Docker安装数据库

在官网有安装MySQL的教程

  1. docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

name是容器的名字

tag是版本号:5.7.34

MYSQL_ROOT_PASSWORD是密码

还可以端口映射:-p 3306:3306 如果端口被占用 请切换其他端口

最终命令,这是我安装的MySQL5.7.34版本

  1. docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 8888:8888 -d mysql:5.7.34

47Node.js操作数据库 - 图3

这样就安装好了呀。

连接数据库

链接数据库

  1. docker exec -it mysql1 bash

这里进入了 Linux系统

47Node.js操作数据库 - 图4

然后进入数据库

  1. mysql -uroot -p

输入密码 123456 就成功进入数据库啦

47Node.js操作数据库 - 图5

尝试用数据库的操作

  1. // 查看所有数据库
  2. show databases;

47Node.js操作数据库 - 图6

就出现上面这个。

数据库的增删改查

创建数据表

  1. create database db_user;
  2. show databases;
  3. use db_user;
  4. create table user_tbl(
  5. user_id INT NOT NULL AUTO_INCREMENT,
  6. user_name VARCHAR(30) NOT NULL,
  7. user_address VARCHAR(100) NOT NULL,
  8. PRIMARY_KEY(user_id)
  9. )ENGINE=innoDB DEFAULT CHARSET=utf8;

展示数据表结构

  1. show columns from user_tbl;
  2. describe user_tbl;

新增数据名

  1. alter table user_tbl ADD birth date;

重命名表名

  1. rename table user_tbl to user;

添加数据

  1. insert into user values (
  2. 2022 ,'ADE','USA','1995-2-12');

查询全部数据

  1. select * from user
  2. select * from fruits where s_id NOT IN (101,102);
  3. select * from fruits where f_name in ('apple','banana');
  4. select * from fruits where f_name like ('%b');

删除数据

  1. delete from user where user_id = 2022;

node.js里面的mysql

数据库的使用 utf8mb4,在创建数据库是确定他的编码。

  1. // 创建数据库
  2. CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`;
  1. docker-machine ip