关于 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("数据库连接成功");
  }
})
相关推荐
ldq_sd5 小时前
node.js安装和配置教程
node.js
我真的很困6 小时前
坤坤带你学浏览器缓存
前端·http·node.js
whyfail9 小时前
ESM 与 CommonJS:JavaScript 模块化的两大主流方式
javascript·node.js
熊的猫9 小时前
ES6 中 Map 和 Set
前端·javascript·vue.js·chrome·webpack·node.js·es6
Pigwantofly11 小时前
软件工程概论项目(二),node.js的配置,npm的使用与vue的安装
node.js
ZJ_.15 小时前
Electron 沙盒模式与预加载脚本:保障桌面应用安全的关键机制
开发语言·前端·javascript·vue.js·安全·electron·node.js
前端SkyRain15 小时前
后端Node学习项目-用户管理-增删改查
后端·学习·node.js
丁总学Java16 小时前
使用 npm 安装 Yarn
前端·npm·node.js
理想不理想v16 小时前
执行npm run build -- --report后,生产report.html文件是什么?
java·前端·javascript·vue.js·webpack·node.js
ForRunner12317 小时前
在 Node.js 中解决极验验证码:使用 Puppeteer 自动化
运维·node.js·自动化