持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情
前言
上集咱们介绍了Nodejs的数据持久化之读写操作,这集介绍Noejs中mysql的持久化,它适用于大批量且又复杂的数据模型,增删改查是它的一部分特性,相对于本地存储的要强很多。
MySQL的安装
- 安装
- 首先进入官网下载安装包
官方地址 www.mysql.com/ 选择如下downloads并下滑选择下载:
点击Mysql进入
- 找到下图指示地方找到MSI安装
在
Select Openatting System中选择Microsoft Windows更改系统选项,最后选择右下角的下载按钮
- 下载好后,打开安装包安装
请选择自定义安装
Custom按钮,点击下一步;设置安装路径和数据存放地址时,请选择对应的版本Mysql server 8.0.20 -x64版本;在右下角有设置安装路径和数据存放路径按钮,建议在安装文件夹下新建data文件夹用于存放数据安装位置和数据存放位置在同一目录 - 加密方式和服务器名称
请选择下面的加密方式
use legacy Authentication Method方式,如果选择上边的话后气连接数据库会报加密错误;设置密码之后进入到设置服务名称,在Windows Service Name中设置默认名称就可以
除了上述描述需要操作外,其他的步骤一直点下一步即可
MySQL的配置
安装模块
配置之前安装Mysql模块,npm命令:
npm i mysql --save
连接配置
- 运行
mysql数据库历史悠久,但是运行时也会产生一些问题,在运用时**推荐使用Promise风格接口(mysql2.js)**mysql2库里面所有的接口,创建自执行函数,以async方式写入
(async () => {})()
- 配置
引入
mysql2/promise库,并连接配置,其中:password和database为修改密码和数据库名称
const mysql = require('mysql2/promise');
const cfg = {
host: "localhost",
user: "root",
password: "example",
database: "mysql"
};
- 连接
通过
createConnection和数据库进行连接
const connection = await mysql.createConnection(cfg);
- 创建表
创建之前通过
conn.query查询,是否有重复,如果有则改名创建!
const CREATE_SQL = `CREATE TABLE IF NOT EXISTS test (
id INT NOT NULL AUTO_INCREMENT,
message VARCHAR(45) NULL,
PRIMARY KEY (id))`;
const SELECT_SQL = `SELECT * FROM test`;
await connection.execute(INSERT_SQL, ['abc']);
- 插入
通过
insert info user ()语句,插入数据,如果插入成功则,Promise返回**affectedRows的值为1**,否则为写入失败
cfg.query(INSERT_SQL, "hello,world", (err, result) => {
if(err){return}
//插入成功
})