[解決済み] NodeJS/mySQL - ER_ACCESS_DENIED_ERROR ユーザー 'root'@'localhost' (using password: YES) のアクセスが拒否されました。
質問事項
NodeJSファイルからmySQLに接続しようとしているのですが、以下のエラーが発生します。
{ Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)
at Handshake.Sequence._packetToError (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/sequences/Sequence.js:30:14)
at Handshake.ErrorPacket (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/sequences/Handshake.js:67:18)
at Protocol._parsePacket (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:197:24)
at Parser.write (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Parser.js:62:12)
at Protocol.write (/home/matthew/Node/mySqlTest/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 (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:110:26)
at Protocol.handshake (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:42:41)
at Connection.connect (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/Connection.js:81:18)
at Connection._implyConnect (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/Connection.js:222:10)
at Connection.query (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/Connection.js:137:8)
at Object.<anonymous> (/home/matthew/Node/mySqlTest/index.js:11: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 }
不思議なのは、ターミナルから、以下のように実行すると、うまく接続できることです。
mysql -u root -p
. javascriptを実行するときだけ、このエラーが発生します。GoogleやStackOverflowで調べてみましたが、まだうまくいく解決策は見つかっていません。私はVIRTUAL MACHINE上のUbuntu 16.04.1上でMySQL 5.7.16を使用しています。VMがここで違いを生むかどうかはわかりません。私のJavascriptコードは以下のとおりです。
'use strict';
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password'
});
connection.query(
'SELECT "foo" AS first_field, "bar" AS second_field',
function(err, results, fields) {
console.log(err);
console.log(results);
connection.end();
}
);
javascriptで'locahost'と'127.0.0.1'を使ってみたのですが、どうでしょうか?mySql.user テーブルに 'localhost' と '127.0.0.1' の両方の 'root' ユーザーがあり、以下を実行することでこれを確認することができます。
SELECT user, host FROM mysql.user WHERE user='root';
これを実行することで、rootユーザーに権限を追加しました。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';
127.0.0.1でも上記を実行しました。また、こんなこともやってみました。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
このようにrootパスワードのリセットを試みました。 https://help.ubuntu.com/community/MysqlPasswordReset
を実行しました。
FLUSH PRIVILEGES
を試行するたびに mySQLを停止して再起動しました。mySQLを完全にアンインストールし、再インストールしました。
すべて無駄です。javascriptを実行しようとすると、毎回アクセス拒否のエラーが出ますが、ターミナルからmySQLに接続すると全く問題がありません。
何か思い当たることはありますか?
解決方法は?
で最新バージョンのMySQLを使用する パッケージ.json は問題を解決しました。
バージョン2.0.0を使用していましたが、2.10.2に変更しました。
関連
-
[解決済み】このエラーの原因は何ですか - "Fatal error: ローカルgruntを見つけることができません"
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] エラー 1698 (28000)。ユーザー 'root'@'localhost' のアクセスが拒否されました。
-
[解決済み] MySQL ERROR 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES)のアクセスが拒否されました。
-
[解決済み] MySQL Error: : 'Access denied for user 'root'@'localhost'
-
[解決済み] ユーザー 'root'@'localhost' に権限を付与しようとしたところ、アクセスが拒否されました。どのようにすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない
-
[解決済み] エラー 1044 (42000)。データベース 'db' へのユーザー ''@'localhost'' のアクセスが拒否されました。
-
[解決済み] MySQL 8.0 - サーバーが要求する認証プロトコルをクライアントがサポートしていないため、MySQLクライアントのアップグレードを検討してください。