2017-03-08 11 views
-1

特定のユーザーとパスワードを使用して同じマシン(debian)上で実行されるMySqlデータベースにノードから接続しようとすると、「アクセスが拒否されました」というエラーが発生します。 同じユーザーで、データベースとノードにパスワードを設定しないと、すべてが動作します。ノードJSを使用したMySqlへの接続と続行

また、端末のWITHパスワードからの接続も正常に動作します。 私はすでにユーザーとデータベースを削除して再作成しようとしました。しかし、何も動作しません。

これは私のノードのコードです:

Possibly unhandled Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'user'@'localhost' (using password: YES) 
    at Handshake.Sequence._packetToError (/var/www/html/node/node_modules/mysql/lib/protocol/sequences/Sequence.js:30:14) 
    at Handshake.ErrorPacket (/var/www/html/node/node_modules/mysql/lib/protocol/sequences/Handshake.js:67:18) 
    at Protocol._parsePacket (/var/www/html/node/node_modules/mysql/lib/protocol/Protocol.js:197:24) 
    at Parser.write (/var/www/html/node/node_modules/mysql/lib/protocol/Parser.js:62:12) 
    at Protocol.write (/var/www/html/node/node_modules/mysql/lib/protocol/Protocol.js:37:16) 
    at Socket.ondata (_stream_readable.js:555:20) 
    at emitOne (events.js:101:20) 
    at Socket.emit (events.js:191:7) 
    at readableAddChunk (_stream_readable.js:176:18) 
    at Socket.Readable.push (_stream_readable.js:134:10) 
    -------------------- 
    at Protocol._enqueue (/var/www/html/node/node_modules/mysql/lib/protocol/Protocol.js:110:26) 
    at Protocol.handshake (/var/www/html/node/node_modules/mysql/lib/protocol/Protocol.js:42:41) 
    at Connection.connect (/var/www/html/node/node_modules/mysql/lib/Connection.js:81:18) 
    at ConnectorManager.connect (/var/www/html/node/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:314:16) 
    at Object.create (/var/www/html/node/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:138:19) 
    at createResource (/var/www/html/node/node_modules/generic-pool/lib/generic-pool.js:258:13) 
    at dispense (/var/www/html/node/node_modules/generic-pool/lib/generic-pool.js:250:9) 
    at Object.me.acquire (/var/www/html/node/node_modules/generic-pool/lib/generic-pool.js:316:5) 
    at CustomEventEmitter.fct (/var/www/html/node/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:248:19) 
    at CustomEventEmitter.<anonymous> (/var/www/html/node/node_modules/sequelize/lib/emitters/custom-event-emitter.js:24:18) 

どれ手がかり:私は、コンソール上で何を得る

var http = require('http'); 
var fs = require('fs'); 
var Sequelize = require('sequelize') 
var sequelize = new Sequelize('mysql://user:[email protected]:3306/databasename'); 

http.createServer(function (req, res) { 
    console.dir(req.url); 
    sequelize.query("SELECT @@version;").spread(function(results, metadata) { 
     console.log(results); 
    }) 

    res.writeHead(200, {'Content-Type': 'text/html'}); 

    res.end('ok'); 
}).listen(8080); 

はこれですか?

+0

パスワードに、そのようなURIで問題が発生する可能性のある文字が含まれていますか?パーセント記号、アンパサンド、プラス記号など – robertklep

+0

いいえ、そんなことはありません。私はmysqljsで同じことを試み、同じエラーが発生しました... – CPlusPlus

+0

'mysql -uuser -p databasename'は(パスワードを入力した後で)動作しますか? – robertklep

答えて

0

問題は、package.jsonに依存性(mysqlまたはsequelize)が含まれていないことです。私はまだわからない、なぜ私はパスワードなしでデータベースに接続することができます。 しかし、今それは動作します。

関連する問題