【发布时间】:2023-03-14 10:34:01
【问题描述】:
所以我建立了一个前端,您可以在其中填写电影名称、评论并将其提交到数据库。现在我试图将我创建的 mysql 数据库连接到 index.js ,以便它被第一个条目填充。我试图像这样完成它:
const express = require('express');
const app = express();
const mysql = require('mysql');
const db = mysql.createPool({
host: "localhost",
user: "root",
password:"password",
database:'CRUDDatabase',
});
app.get('/', (req, res) => {
const sqlInsert = "INSERT INTO Movie_Reviews(movieName, movieReview) VALUES (1,'inception', 'good movie');"
db.query(sqlInsert, (err, result) =>{
res.send("change done");
});
})
app.listen(3001, () => {
console.log("running on port 3001")
})
但不知何故,前端得到了我发送“更改完成”的文本,但数据库仍然没有显示任何条目。有什么想法可能是我的错误吗?是代码错误还是与我的数据库配置有关。在 mysql 工作台中,我只是创建了一个默认连接,没有进行任何更改。
编辑:错误似乎如下: 错误:ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的身份验证协议;考虑升级 MySQL 客户端
编辑: 以下评论解决了我的问题: 在 MYSQL Workbench 中执行以下查询 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';其中 root 作为您的用户 localhost 作为您的 URL 和密码作为您的密码 然后运行此查询以刷新权限:刷新权限;完成后尝试使用节点连接。如果这不起作用,请尝试不使用 @'localhost' 部分。
【问题讨论】:
标签: javascript mysql node.js reactjs database