私はMacコンピュータを持っています。私は正常にMySQLをインストールしました。私はターミナルからmysqlを使用できるので、これを知っています。私もクエリを実行し、それは正常に動作します。WebStormでMySQLを使用すると動作しない
WebStormを使用してNode.jsを学習しようとしています。だから、WebStormで、私はpackage.json
{
"dependencies":{
"mysql":"~2.0.0"
}
}
で、私のプロジェクトを作成し、私は、MySQLモジュールをインストールするnpm install
を実行します。私はresults
のログundefined
を保持する次のコードを実行します。何が欠けているのか?
'use strict';
var mysql = require('mysql');
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'myPassword'
});
connection.query(
'SELECT "foo" as first_field, "bar" as second_field',
function(err,results,fields){
console.log(results);
connection.end();
}
);
私はエラーのためにログインすると、私は次のトレースを取得:
resutls is:: undefined
{ Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)
at Handshake.Sequence._packetToError (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/protocol/sequences/Sequence.js:30:14)
at Handshake.ErrorPacket (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/protocol/sequences/Handshake.js:67:18)
at Protocol._parsePacket (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/protocol/Protocol.js:197:24)
at Parser.write (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/protocol/Parser.js:62:12)
at Protocol.write (/Users/mename/WebstormProjects/nodesql/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:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
--------------------
at Protocol._enqueue (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/protocol/Protocol.js:110:26)
at Protocol.handshake (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/protocol/Protocol.js:42:41)
at Connection.connect (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/Connection.js:81:18)
at Connection._implyConnect (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/Connection.js:222:10)
at Connection.query (/Users/mename/WebstormProjects/nodesql/node_modules/mysql/lib/Connection.js:137:8)
at Object.<anonymous> (/Users/mename/WebstormProjects/nodesql/index.js:10:12)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlState: '28000',
fatal: true }
;'端末から、それを'password'フィールドはないと言います –
エラーは' root'ユーザがここに接続できないことを明示しています。 'root'ユーザは、TCP接続専用のソケットまたは同様のものを介してログインすることはできません。それはすべてセキュリティ上の目的です。したがって、そのような場合をデバッグする最も良い方法は、通常のユーザ(例えば 'my_user')を作成し、必要なDB(またはここで適用したい制限)にのみ権限を与えることです。そのようなユーザーのホスト/ IPからのアクセスを許可します。 – LazyOne