Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs mysql未使用完整配置_Node.js_Knex.js_Node Mysql - Fatal编程技术网

Node.js nodejs mysql未使用完整配置

Node.js nodejs mysql未使用完整配置,node.js,knex.js,node-mysql,Node.js,Knex.js,Node Mysql,首先,我在这里和谷歌都找不到任何答案。我可能会寻找错误的方向,并感谢任何帮助。 Node: 10.24.1/12.22.1/14.17.0/16.3.0 (These are the versions I tried) Mysql for node: 2.18.1 Knex: 0.95.0/0.95.4/0.95.5 (Versions I tried) Test environments: two computers (mac & win) in two networks (total

首先,我在这里和谷歌都找不到任何答案。我可能会寻找错误的方向,并感谢任何帮助。

Node: 10.24.1/12.22.1/14.17.0/16.3.0 (These are the versions I tried)
Mysql for node: 2.18.1
Knex: 0.95.0/0.95.4/0.95.5 (Versions I tried)
Test environments: two computers (mac & win) in two networks (totally separated)
背景

代码需要在本地访问mysql数据库。该数据库已通过HeidiSQL(win)和Sequel Ace(mac)在这两台具有相同凭据的计算机上进行了远程测试,并取得了成功

为了避免其他代码的干扰,我使用
npminit
启动了一个新项目。它有一个文件:
app.js
,代码如下:

var mysql = require('mysql');
var connection = mysql.createConnection({
  host     : '123.123.123.123', // Remote database IP
  user     : 'user_name',
  password : 'pass',
  database : 'mydb'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

connection.end();
code: 'ER_ACCESS_DENIED_ERROR',
sqlMessage: "Access denied for user 'user_name'@'200.200.200.200' (using password: YES)",
sqlState: '28000',
fatal: true
code: 'ER_ACCESS_DENIED_ERROR',
sqlMessage: "Access denied for user 'user_name'@'202.202.202.202' (using password: YES)",
sqlState: '28000',
fatal: true
200.200.200.200
这里是一个网络真实IP的示例 错误如下:

var mysql = require('mysql');
var connection = mysql.createConnection({
  host     : '123.123.123.123', // Remote database IP
  user     : 'user_name',
  password : 'pass',
  database : 'mydb'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

connection.end();
code: 'ER_ACCESS_DENIED_ERROR',
sqlMessage: "Access denied for user 'user_name'@'200.200.200.200' (using password: YES)",
sqlState: '28000',
fatal: true
code: 'ER_ACCESS_DENIED_ERROR',
sqlMessage: "Access denied for user 'user_name'@'202.202.202.202' (using password: YES)",
sqlState: '28000',
fatal: true
然后,我将这个小型测试项目克隆到另一台计算机上,并使用示例IP
202.202.202
在不同的网络中进行测试,错误如下:

var mysql = require('mysql');
var connection = mysql.createConnection({
  host     : '123.123.123.123', // Remote database IP
  user     : 'user_name',
  password : 'pass',
  database : 'mydb'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

connection.end();
code: 'ER_ACCESS_DENIED_ERROR',
sqlMessage: "Access denied for user 'user_name'@'200.200.200.200' (using password: YES)",
sqlState: '28000',
fatal: true
code: 'ER_ACCESS_DENIED_ERROR',
sqlMessage: "Access denied for user 'user_name'@'202.202.202.202' (using password: YES)",
sqlState: '28000',
fatal: true
显然,mysql库已经修改了用户名,但主机没有。我假设密码也被接收了。由于
使用密码:YES

我认为这与数据库无关,因为如果没有使用正确的IP,代码甚至还没有触及数据库服务器

它看起来像是在使用
localhost
,但它不应该是
192.168.x
,而且我在任何地方都不使用
localhost

我尝试了几个版本的node,看起来它与node无关
knex
mysql
是使用
npm
新安装的。项目尽可能干净。我不认为任何有问题的地方都会导致这种情况


感谢您的帮助。

检查您的数据库用户名和密码。若它在之前工作过,那个么它现在应该工作了,我认为它和你们的任何依赖节点都并没有关系


如果密码一直不起作用,请尝试更改密码并重试。根据您的示例,mysql库使用配置,因此它没有理由选择您的用户名和密码,而是显式忽略您的主机。

我将尝试一组新的用户名和帐户。谢谢你说得对。我仍然不知道它为什么会抛出这样的错误,但是重置用户名和密码确实有效。谢谢