mysql - ER_ACCESS_DENIED_ERROR : Access denied for user '' @'localhost' (using password: NO)

标签 mysql node.js database localhost

我有这个问题,我已经研究过但无法解决它,我想它与数据库权限有关,但我无法修复它:

if (error) throw error;
       ^

Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO)
at Handshake.Sequence._packetToError (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/sequences/Sequence.js:52:14)
at Handshake.ErrorPacket (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/sequences/Handshake.js:103:18)
at Protocol._parsePacket (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/Protocol.js:279:23)
at Parser.write (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/Parser.js:76:12)
at Protocol.write (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/home/carlos/www/express-cc/node_modules/mysql/lib/Connection.js:103:28)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at addChunk (_stream_readable.js:266:12)
at readableAddChunk (_stream_readable.js:253:11)
--------------------
at Protocol._enqueue (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/Protocol.js:145:48)
at Protocol.handshake (/home/carlos/www/express-cc/node_modules/mysql/lib/protocol/Protocol.js:52:23)
at Connection.connect (/home/carlos/www/express-
cc/node_modules/mysql/lib/Connection.js:130:18)
at Object.<anonymous> (/home/carlos/www/express-cc/db.js:10:12)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Module.require (module.js:517:17)

---- 编辑 -----

我的 env.default 文件:

NODE_ENV=DEVELOPMENT

DB_HOST=localhost
DB_USER=user
DB_PASSWORD=userpass
DB_NAME=teste

这是我的 db.js 文件:

 var mysql = require('mysql')
  var connection = mysql.createConnection({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database : process.env.DB_NAME,
  sockertPath: '/var/run/mysqld/mysqld.sock'
})

 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)
});

 module.exports = connection;

最佳答案

我遇到了类似的问题,我的所有连接都正常工作,但我收到错误“ER_ACCESS_DENIED_ERROR:用户''@'localhost'访问被拒绝(使用密码:NO)”,我的电话是在 app.js 级别的中间件内部制作,因此 .env 值尚无法访问,对于这种情况(它可以帮助那些与我有相同问题的人)我必须添加:

require('dotenv').config();

在连接文件中这样:

const mysql = require('mysql')
require('dotenv').config();
const connectionLog = mysql.createPool({
    connectionLimit : 10,
    host: process.env.DB_HOST_LOG,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
    port:process.env.DB_PORT
})

对我来说,这就是决心。

关于mysql - ER_ACCESS_DENIED_ERROR : Access denied for user '' @'localhost' (using password: NO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200729/

相关文章:

mysql - 在 MySQL 之上安装 MariaDB 5.5

mysql - 我正在尝试打开一个光标。尽管与 mysql 数据库有连接,但它不起作用

node.js - OPC-UA开源框架

database - 将普通 Postgres 数据库转换为 PostGis 数据库

php - 使用 PHP 和 MySQL 创建数据库

mysql - 如何在sql中合并两列并将其显示为单独的记录

mysql - 在 SQL 中使用两个 HAVING

mysql - 如何为每个企业选择最近的三个评论?

node.js - Fs-Extra 可以只删除目录下的文件吗?

javascript - 使用声明文件 typescript