Node.js操作MySQL数据库

Node.js操作MySQL数据库
MySQL驱动的安装
使用以下命令安装 node.js 的 MySQL 的驱动库:
1 | npm install mysql |
Node.js连接及使用MySQL
进行 MySQL 连接前需要进行连接配置的声明及初始化
1 | const MYSQL_CONF = { |
然后通过 mysql.createConnection(config) 方法传入连接配置创建一个连接:
1 | const con = mysql.createConnection(MYSQL_CONF) |
接着使用 con.query(sql, callback) 方法即可对 MySQL 发送 SQL 命令,数据库响应返回通过 callback 函数调用,以查询语句为例:
1 | con.query(`select * from users`, (error, result)=>{ |
callback 函数将 SQL 命令的结果通过参数的形式获取并返回,如果 SQL 存在错误则将其错误输出,如果查询成功则将其结果输出
在连接结束后,需进行数据库连接的关闭:
1 | con.end() |
在项目中的操作方式
在一个 Node.js 项目中,MySQL 连接通常以单例模式运行,即只需要在项目初始化时进行一次连接,后续的 SQL 命令都通过这次连接发送,不进行连接的关闭,同时将 query 请求使用 Promise 进行包装并向外暴露,方便其他模块的调用:
1 | const mysql = require('mysql') |
错误与其解决方法
Client does not support authentication protocol requested by server
当使用 Node.js 连接 MySQL 8.0 以上版本时会出现该错误
主要是由于加密方式的不同而产生的,因此需要更改 MySQL 账号的加密方式
首先使用
use mysql;
切换数据库,然后使用select user,host from user;
查看 root 用户所对应的 host ,接着继续加密方式的修改:1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
其中,
'root'@'%'
也就是由 root 与其对应的 host 所组成,最后使用FLUSH PRIVILEGES;
刷新权限,错误就能成功解决
- 本文标题:Node.js操作MySQL数据库
- 本文作者:Axin
- 创建时间:2021-12-23 10:41:01
- 本文链接:https://izhang.xin/2021/12/23/Node-js操作MYSQL数据库/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!