关于 node 连接 mysql 数据库步骤--含报错解决方式

第一步:mysql 数据库安装:

mysql 下载地址:dev.mysql.com/downloads/m...

下载步骤:选择对应的 msi:

这里不建议下载最新的版本,到时候在 node 连接数据库的时候,会出问题,因为最新的不支持 某些认证方式,建议选择大版本为 8的 版本下载安装。

(1)下载,选择不登录下载

(2)运行下载好的 msi 文件

(3)傻瓜式的下一步安装

复制代码
注意点: 安装的时候选择自定义安装,然后记得更改安装目录

(4) 测试 mysql 安装是否成功 在电脑中查找 mysql 工具

按照提示输入刚刚安装数据库时设置的密码,如果正常出现这个,就说明安装成功了!

第二步:下载数据库连接工具

Navicat 数据库连接工具地址:www.navicat.com.cn/download/na...

傻瓜式一键安装。

连接方式: (1):新建一个 mysql 连接,然后点击下一步

(2) 设置连接的名字,其他可以默认不用动,默认端口是 3306,然后输入设置的数据库密码,点确定即可连接,这种方式也可确认数据库是否安装成功!

第三步:配置好 node 环境,安装 node.js, 有 node 环境,就不需要了,前端一般都有node 环境的。

第四步:搭建 node 项目 (这个项目只做简单的数据库的连接成功示范)

(1)初始化项目

js 复制代码
   npm init -y

(2)安装依赖 mysql 依赖

js 复制代码
npm install mysql

(3)创建 mysql.js 连接文件

js 复制代码
//引用 mysql

const mysql = require('mysql')

//建立连接(输入数据库密码,数据库名称)
const cnn = mysql.createConnection({ host:'localhost', user:'root', password:'root', port:3306, database:'myblog' })

//开始连接 
cnn.connect(err=>{
if(err){
    console.log('数据库连接失败')
}else{
       console.log('数据库连接成功')
}
});

//关闭连接
cnn.end()

(4)运行 mysql.js 文件 (以下是我的文件目录)

(5) 使用 node 命令,运行该文件

node .\mysql.js

(6) 连接失败了,关于 mysql 官方讲了,8.0 以上版本,好像就不支持 mysql_native_password 的数据库认证方式了,然而,mysql 的 node 依赖包并没有更新,使用的还是mysql_native_password 认证方式

解决办法有两种: 1、安装的 mysql 版本不高于 8.0 以上,可以使用以下 mysql 命令解决:

(1)首先,在 电脑中找到 mysql 命令终端,并打开

(2)输入如下命令

js 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你设置的密码';

(3)刷新下权限

js 复制代码
    flush privileges;

(4)重新执行 node 命令

2、安装版本高于8.0 的 (1)换个插件

npm install mysql2

(2)更改数据库连接方式

js 复制代码
const mysql = require("mysql2");
const cnn = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "xxxxx", //你的密码
  port: "3306",
  database: "testblog",
  authPlugins:'caching_sha2_password' //在这个地方切换认证方式
});

cnn.connect((err) => {
  if (err) {
    console.log("数据库连接失败",err);
  } else {
    console.log("数据库连接成功");
  }
})
相关推荐
FungLeo7 小时前
成为全栈·Node 后端篇·阅读量防刷:去重、冷却与计数写分离
node.js·读写分离·数据去重·接口防刷·成为全栈·数据冷却
脉动数据行情11 天前
Node.js WebSocket 实现贵金属实时行情监听 伦敦金 / 伦敦银自动重连方案
websocket·node.js·vim
不老刘1 天前
一行命令解决 Node.js 版本兼容问题:`--openssl-legacy-provider` 深度解析
node.js
万敏2 天前
Vue3 全栈实战:第一阶段复盘(第1-8周)
vue.js·node.js·全栈
濮水大叔2 天前
舒服了,CabloyJS 的 AI Spec 驱动开发会自动生成甘特图和燃尽图
typescript·node.js·vibecoding
FungLeo2 天前
成为全栈·Node 后端篇·部署上线:从本地起服到真正对外服务
node.js·后端部署·成为全栈
妙码生花2 天前
golang 应用服务端部署(使用 systemd 服务)
开发语言·人工智能·后端·golang·node.js·php·gin
柚稚姐姐2 天前
npm install pnpm -g npm error code EACCES npm error syscall symlink
前端·npm·node.js
FungLeo3 天前
成为全栈·Node 后端篇·容器化:给 Node 应用写一个像样的 Dockerfile
docker·node.js·dockerfile·成为全栈·后端服务容器·docker 容器
WeiXin_DZbishe3 天前
基于springboot大学生提问箱系统-计算机毕设【课程设计】72593
javascript·vue.js·spring boot·vscode·python·node.js·php