2012-11-18 5 views
5

mysql dbにアクセスするための単純なノードサンプルを実行しようとしていますが、次のエラーが表示されています - エラー:ER_ACCESS_DENIED_ERROR:'root'@'ubuntu.local '(パスワード使用:YES)をnode.jsを使用してmysqlデータベースにアクセスする際の支援が必要です

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.Anyの提案を使用してMySQLにアクセスするためのコードです。

+1

コンソールからmysqlに接続できますか? 'mysql -h 192.168.0.12 -u root -p app'(要求後にパスワードを入力してください) –

+0

ほとんどの場合、 'localhost'に設定する必要があります。 –

+0

私はあなたが私に与えたコマンドを実行できませんが、 localhostではコマンドラインからは動作しますが、ノードスクリプトでは次のエラーが発生します:ECONNREFUSEDを接続します。 – anonymous123

答えて

8

私は同じエラーが発生しているのと同様の問題がありました。

私の答えは、私が別のポートを使用していたことに終わりました。デフォルトでは、MySQLは3306のポートが期待するが、私は、私は私のデータベース接続にポート定義を追加したとしてMySQLサーバポートとすぐ8889として指定されたMAMPを使用していた、それは大丈夫だった:

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

注:これは、Mac用のMAMPを使用している、ubuntuまたはWindowsで試していない。

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)では動作しません。 Issue 734

私は127.0.0.1のパスワードをMySQLに設定しなければならず、問題を解決しました。コンソール経由でMySQLへ

手順

接続:

mysql -u root -p mysql 

そして

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

Source

+0

mysql -u root -p mysqlを実行すると、このエラーが発生します。 'root' @ 'localhost'(パスワード:YESを使用)のアクセスが拒否されました。 ' – jose920405

-1

実際ソリューションは、あなたが思ったより簡単で実行します。データベース接続のホストを127.0.0.1に変更します。

+5

ホストは "127.0.01"にデータベース接続を修正しますか? OPがデータベースサーバーに関連しているように見えるIPアドレスを使用しているためです。 –

1

私は長い間この問題に遭遇しており、私が行ったすべてのフォーラムの中で、簡単な解決策が私の問題を解決しています。私のパスワードには特殊文字が使われていました。私はそれを "唯一のもの"のようなより単純なものに変更し、それは完全に機能します。おそらく、nodejs mysqlモジュールのエンコーディングの問題です。あなたの人たちの助けになると期待しています...

+0

私はそれがパスワードだった:[A-Za-z0-9 \。] {64}は私のために働いた、 – Myonara

0

私は同様の問題がありました。私のnodejs project.Iはquerybuilderにknex.jsを使用していました。構成。

この問題は、ホスト値が127.0.0.1で、ローカルホストに127.0.0.1に変更したときに問題がなくなった場合に発生します。

var knex = require('knex')({ 
    client: 'mysql', 
    connection: { 
     **host: 'localhost',** 
     user: 'userNew', 
     password: 'password', 
     database: 'appDb' 
    } 
}); 
関連する問題