引子

尝试应用 Node 连贯 MySql 数据库。

  • Origin
  • My GitHub

装置

零碎:macOS Catalina 10.15.7

MySql

应用工具 Homebrew

# 搜寻看下有没有brew search mysql# 查看下相干信息,是不是想要的brew info mysql# 装置brew install mysql

这个时候要留神装置之后的提示信息:

  • 版本 8.0.22 。
  • 装置的 MySql ,没有设置明码,要想更平安,运行命令:mysql_secure_installation
  • MySql 默认配置只容许从本地连接。
  • 想要连贯,运行命令: mysql -uroot
  • 启动命令: brew services start mysql ,如果不想要后盾运行服务,运行命令: mysql.server start

执行 mysql_secure_installation 会提醒各种相干的设置,比方明码,是否禁止近程 root 登录,移除测试表等等。

执行 mysql -uroot 时,呈现上面的提醒:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

依照官网上输出的指令 mysql -u root -p ,提醒输出明码,输出 123456 就进入了,网上看有些状况下须要重置明码。

其它命令

  • 查看运行状态: mysql.server status;
  • 敞开: mysql.server stop

MySQL Workbench

官网提供了可视化工具,能够在这里下载,本次应用的版本是 mysql-workbench-community-8.0.22-macos-x86_64 。

应用工具连贯本都数据库时,须要填写端口,用命令的形式登录后查问端口:

mysql> show global variables like 'port';

该工具默认显示的端口是 3306 。第一次的连贯的时候,会弹窗提醒输出明码。

Node

装置 Node 参考这里 。

连贯数据库

在 npm 上能够搜寻连贯 mysql 的库,这里以 mysql 联合 koa 作为示例。

// db.js 文件,次要用来连贯数据库const mysql = require('mysql');const client = (sql) => {  return new Promise((resolve) => {  const connection = mysql.createConnection({    host: 'localhost',    port: 3306,    user: 'root', // 用户名    password: '123456', // 明码    database: 'test', // 库名称  });  connection.connect();  connection.query(sql, function (error, results, fields) {    if (error) throw error;    resolve(results)  });  connection.end();  })}
// server.js 开启服务const Koa = require('koa');const cors = require('@koa/cors'); // 解决本地申请跨域问题const app = new Koa();const sqlConnect = require('./db');app.use(cors())// responseapp.use(async ctx => {  const sql = 'SELECT * FROM table_name'; // table_name 为库中表的名称  const list = await sqlConnect(sql);  console.log('list', list)  ctx.body = list;});app.listen(3000);console.log('server is running at http://localhost:3000')

失常启动后,前端页面申请一下 http://localhost:3000 就能够看到成果。

参考资料

  • node
  • mysql
  • koa
  • MySQL command index