ER_ACCESS_DENIED_ERROR 在个人项目中使用 mysql NPM 模块时
ER_ACCESS_DENIED_ERROR when using mysql NPM module in personal project
问题: 我有一个 Node.js 程序在尝试访问数据库信息时因以下错误而中断:
Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'user'@'localhost' (using password: YES)
用户名和密码都是正确的——我已经使用组合登录到mysql命令行界面。用户能够成功登录并且可以在相同的 table 上查询 Node 程序中断而不会出错,这让我想知道为什么它会这样出错。
代码链接在问题的末尾,以及如何使用它。
背景:该程序是一个学生帮助请求队列,目的是让学生有一种数字"line"等待,以便老师可以知道谁等待的时间最长,从而知道如何优先考虑需要帮助的人。我把它写给我的计算机科学老师使用,同时也作为我自己的一个有趣的项目。
项目使用了Socket.IO,felixge的node-mysql,kriszyp的promised-io。 Socket是为了让求助请求可以实时发送到teacher/aide台电脑,也可以让求助请求一次性从所有电脑上删除(aide resolves request 1,它从老师的电脑上消失,所以he/she 不会尝试帮助已经被帮助过的学生)。 MySQL 插件允许与 MySQL 数据库连接以保存请求 - 不是最快的,我知道,但这是我的托管服务提供商允许我使用的。最后,Promised-IO 用于 promises,传递这些 promises 以便更容易处理查询结果。它也是我简单地将请求存储在内存中并将密码哈希存储在文本文件中时的残余。现在我想让 MySQL 工作,然后我会担心更换它。
现在的代码应该允许一个实例有多个帮助队列,每个帮助队列都在 domain.com/queue-name 下访问。所有事情都是使用 for 循环完成的。我也不在乎它是否正常工作,并且认识到我应该使用 socket.io 的 "rooms",但请提及它,因为它可能是相关的。
示例代码
// Should have 'npm install'-ed student-queue before this.
var Queue = require("student-queue");
var q = new Queue({
host: "localhost",
database: "mydb",
user: "user",
password: "password"
});
q.start();
如果您正在试用该程序,目前需要进行一些设置。数据库和 user/password 需要预先创建,那么在使用上面的代码之前,你应该 运行 这段代码在 app.js 中。直到我可以构建 "setup" 页面:
var DB = require("student-queue-mysql-plugin");
// These are the values that you have set up, to be used in the above snippet
var db = new DB({
host: "localhost",
database: "mydb",
user: "user",
password: "password"
});
db.createConfigTable().then(
function(){
db.addNewQueue({
name: "test",
password: "password"
}).then(
function(){
console.log("You can now access the queue 'test' at localhost:3000/test using the above code. The teacher password is 'password'");
}
);
}
);
链接:
我正在尝试一些新的东西来尝试解决这个问题,并将存储库暂时设为私有。当我完成后,它们将再次变为 public,我将用结果更新此问题。
- https://github.com/Shadow53/student-queue
- https://github.com/Shadow53/student-queue-mysql-plugin
感谢任何帮助!
密码错误
即密码输入正确,但由于某种原因用户名被用作用户名和密码,所以密码错误。
嘘。
我已经解决了这个问题,作为 the commit 过渡到 mariasql 的一部分(我之前尝试过的事情)。据我所知,现在一切正常。
问题: 我有一个 Node.js 程序在尝试访问数据库信息时因以下错误而中断:
Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'user'@'localhost' (using password: YES)
用户名和密码都是正确的——我已经使用组合登录到mysql命令行界面。用户能够成功登录并且可以在相同的 table 上查询 Node 程序中断而不会出错,这让我想知道为什么它会这样出错。
代码链接在问题的末尾,以及如何使用它。
背景:该程序是一个学生帮助请求队列,目的是让学生有一种数字"line"等待,以便老师可以知道谁等待的时间最长,从而知道如何优先考虑需要帮助的人。我把它写给我的计算机科学老师使用,同时也作为我自己的一个有趣的项目。
项目使用了Socket.IO,felixge的node-mysql,kriszyp的promised-io。 Socket是为了让求助请求可以实时发送到teacher/aide台电脑,也可以让求助请求一次性从所有电脑上删除(aide resolves request 1,它从老师的电脑上消失,所以he/she 不会尝试帮助已经被帮助过的学生)。 MySQL 插件允许与 MySQL 数据库连接以保存请求 - 不是最快的,我知道,但这是我的托管服务提供商允许我使用的。最后,Promised-IO 用于 promises,传递这些 promises 以便更容易处理查询结果。它也是我简单地将请求存储在内存中并将密码哈希存储在文本文件中时的残余。现在我想让 MySQL 工作,然后我会担心更换它。
现在的代码应该允许一个实例有多个帮助队列,每个帮助队列都在 domain.com/queue-name 下访问。所有事情都是使用 for 循环完成的。我也不在乎它是否正常工作,并且认识到我应该使用 socket.io 的 "rooms",但请提及它,因为它可能是相关的。
示例代码
// Should have 'npm install'-ed student-queue before this.
var Queue = require("student-queue");
var q = new Queue({
host: "localhost",
database: "mydb",
user: "user",
password: "password"
});
q.start();
如果您正在试用该程序,目前需要进行一些设置。数据库和 user/password 需要预先创建,那么在使用上面的代码之前,你应该 运行 这段代码在 app.js 中。直到我可以构建 "setup" 页面:
var DB = require("student-queue-mysql-plugin");
// These are the values that you have set up, to be used in the above snippet
var db = new DB({
host: "localhost",
database: "mydb",
user: "user",
password: "password"
});
db.createConfigTable().then(
function(){
db.addNewQueue({
name: "test",
password: "password"
}).then(
function(){
console.log("You can now access the queue 'test' at localhost:3000/test using the above code. The teacher password is 'password'");
}
);
}
);
链接: 我正在尝试一些新的东西来尝试解决这个问题,并将存储库暂时设为私有。当我完成后,它们将再次变为 public,我将用结果更新此问题。 - https://github.com/Shadow53/student-queue - https://github.com/Shadow53/student-queue-mysql-plugin
感谢任何帮助!
密码错误
即密码输入正确,但由于某种原因用户名被用作用户名和密码,所以密码错误。
嘘。
我已经解决了这个问题,作为 the commit 过渡到 mariasql 的一部分(我之前尝试过的事情)。据我所知,现在一切正常。