2017-09-13 1 views
0

J'ai ce problème, j'ai déjà fait des recherches et je n'ai pas pu le résoudre, j'imagine qu'il a quelque chose à voir avec les permissions de base de données, mais je peux pas fixer:ER_ACCESS_DENIED_ERROR: Accès refusé pour l'utilisateur '' @ 'localhost' (utilisant le mot de passe: NO)

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) 

---- ----- EDIT

mon fichier env.default:

NODE_ENV=DEVELOPMENT 

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

donc ce fichier mon 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; 

Répondre

1

Vous devez créer un utilisateur MySQL spécifiquement pour accéder à l'application. Créez un utilisateur et définissez un mot de passe (ne laissez pas le mot de passe nul). Ne pas oublier de donner à cet utilisateur la permission d'accéder à la base de données et aux tables de l'application. J'espère avoir aidé.

+0

merci professeur, ça a marché! – Techtique

1

Vous n'avez pas fourni db utilisateur:

Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO) 
+0

hey man, j'ai édité le contenu, d'un coup d'oeil – Techtique

+0

@Techtique vous voyez dans le message d'erreur, qu'il manque un nom d'utilisateur et le mot de passe n'est pas fourni, donc pour quelque raison 'process.env.DB_USER' ni' processus. env.DB_PASSWORD' ne contient pas les informations d'identification de 'env.default'. Donc, cela n'a rien à voir avec les permissions db. – michaJlS

+0

@michaJIS Alors, que dois-je faire? – Techtique