5

mysql データベースにアクセスするための単純なノード サンプルを実行しようとしていますが、次のエラーが表示されます: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'ubuntu.local' (using password: YES)

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : '192.168.0.12',
  user     : 'root',
  password : 'password',
  database : 'app'
});

connection.connect();

connection.query('SELECT * from users', function(err, rows, fields) {
  if (err) throw err;

  console.log('The solution is: ', rows[0]);
});

connection.end();

上記は、node.js を使用して mysql にアクセスするためのコードです。

4

6 に答える 6

9

同じエラーが発生する同様の問題がありました。

私にとっての答えは、別のポートを使用していたということになりました。デフォルトでは、mysql は 3306 のポートを想定していますが、私は MAMP を使用しており、MySQL サーバーのポートは 8889 として指定されていました。データベース接続にポート定義を追加するとすぐに、問題ありませんでした。

var connection = mysql.createConnection({
    port: 8889,
    user: 'root',
    password : 'password',
    database : 'my_database'
});

注: これは MAMP を使用する Mac 用であり、ubuntu または Windows では試していません。

于 2013-07-30T20:50:41.913 に答える
3

私はまったく同じ問題を抱えていました。nodejs の mysql モジュール経由で接続できませんでしたが、ターミナルの mysql クライアント経由で接続できました (mysql -u root -p1111 -h localhost mydb)。

mysql モジュールは「localhost」を 127.0.0.1 に変換します。これは (mysql -u root -p1111 -h 127.0.0.1 mydb) では機能しません。問題734を参照してください

そのため、MySQL で 127.0.0.1 のパスワードを設定する必要があり、問題は解決しました。

指示

コンソール経由で mysql に接続します。

mysql -u root -p mysql

そして実行

SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('Add-Your_password-here');

ソース

于 2015-02-26T00:44:27.303 に答える