質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.54%

node.jsでのmysqlとのデータのやり取り

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,602

keito04

score 13

windowsで作業をしています。
ローカルサーバーでの作業です。
ubuntuで立ち上げたサーバーとの接続です。
ローカルサーバーのnode.js(v0.10.25)においてリモートホストのmysqlのデータベースに接続し、データを得たいと考えています。
コードは以下の通りです。

var db = require('mysql');

var settings = {
  "host": "host",
  "database": "db",
  "user": "user",
  "password": "pass"
};

var connection = db.createConnection(settings);
  connection.query("show tables;", function(err, result) {
  if (err) {
      console.log(err);
    // 接続失敗
    return;
  }

  console.log(result);  // [ { 'count(*)': 8 } ]

  connection.end(function() {
    // 接続終了
  });
});


エラーはこういった形で出ます。

{ [Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'ユーザー'@'ホスト' (using password: YES)]
  code: 'ER_ACCESS_DENIED_ERROR',
  errno: 1045,
  sqlState: '28000',
  fatal: true }
undefined


セッティングでホストの値はサーバーの値を入力しているのですが、
ホストの値が繋いでいるwifiによって変更されてしまいます。
御教授よろしくお願いします。

追記 ホストの値が変更されるといった内容の詳細を記入ッせてもらいます。
本来はnode.js上のsettingで記入した、hostの値になるべき場所がPCが利用しているwi-fiである、

{ [Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'ユーザー'@'softbank0689
1463235.bbtec.net'


や、またほかのwi-fiに接続すると、

{ [Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'ユーザー'@'ai12632482360
87.59.access-internet.ne.jp' (using password: YES)]


といった形で本来のhostであるべきの場所が変更されてしまいます。

今エラーの原因がhostが変わっていることとして扱っていますが、
この変更されてしまうこと自体が問題ということでいいのでしょうか?

編集依頼の追記をさせてもらいます。
①MYSQLサーバーは、WINDOWS上で動かしているテストサーバーでしょうか?(社内開発目的等のサーバーでしょうか?)
→サーバーはMicrosoft Azureを利用しています。 
②MYSQLサーバーは、ルーター経由でネットにつながっているのでしょうか?それとも、ルーターを経由せず、直接Wi-fi等に接続されておられるのでしょうか? 
→ルーターを介してwi-fiに接続しています。
③MYSQLサーバーにアクセスしている端末は、MYSQLサーバーとは別のパソコンでしょうか?それとも、MYSQLと同じパソコンでしょうか? 
→はい別の端末です。また、他の端末では、MYSQLサーバーにログインすることは出来たのですが、今回node.jsからの接続に失敗しているといった状態です。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • keito04

    2016/08/24 11:37

    サーバーはMicrosoft Azureを利用しています。
    ルーターを介してwi-fiに接続しています。
    はい別の端末です。また、他の端末では、MYSQLサーバーにログインすることは出来たのですが、今回node.jsからの接続に失敗しているといった状態です。

    キャンセル

  • KenjiObata

    2016/08/24 11:40 編集

    回答ありがとうございます。今の回答内容を、質問事項の補足情報として加えていただければ、他の方も回答されやすいかと思います。お手数ですが、質問内容にも、反映いただければ幸いです。

    キャンセル

  • miyabi-sun

    2016/08/24 12:10

    編集対応ありがとうございます

    キャンセル

回答 4

check解決した方法

0

解決したのですが、初歩的なところでした。
パスワードが異なっていたという点でした。
申し訳ありません。
ご協力いただいた方々、本当にありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/24 20:26

    なんとw 何にせよ解決できてよかったです!

    キャンセル

0

windowsで作業をしています。 
ローカルサーバーでの作業です。 
ubuntuで立ち上げたサーバーとの接続です。 

セッティングでホストの値はサーバーの値を入力しているのですが、 
ホストの値が繋いでいるwifiによって変更されてしまいます。 

ローカルで立ち上げたサーバーなのに、なんでホストのIPアドレスがコロコロ変わるのでしょうか。
この辺を洗い出していけば自ずと答えが見えてくるはずです。

 確認すべきポイント

仮想マシンを立ち上げる為に何のアプリを利用したか

  • VirtualBOX(+ Vagrant)
  • WMWare
  • その他

どこのネットワークにぶら下げているか

  • 自分のマシン内(仮想マシンのアプリでは仮想的なルーターの配下にぶら下げて外からは接続出来ないような設定ができます)
  • 家庭・社内のルーター

固定IPか変動IPか

  • 変動IPにしている(仮想マシンの電源を入れ直す度にコロコロ変わります)
  • 固定IPにしている

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

セッティングでホストの値はサーバーの値を入力しているのですが、 
ホストの値が繋いでいるwifiによって変更されてしまいます。 
御教授よろしくお願いします。

ここの意味は分かりませんがエラーが帰ってきているということはconnectはできていると考えます。
ER_ACCESS_DENIED_ERRORは確か、そのユーザーに接続権限がないと出た気がします。
作成したユーザーに外部接続許可は与えているでしょうか?

コンソールからmysqlに接続して

GRANT ALL PRIVILEGES ON db.* TO 'user'@'%' IDENTIFIED BY 'pass';


のように外部接続許可の権限を与えてみてはどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

推察ではありますが、ローカルエリアに、XAMPP等でWindows環境に、MYSQL等のテストサーバーを構築しておられるのではないでしょうか?

もしそうであれば、テストサーバーのIPアドレスを自動取得ではなく、固定設定にすればよいかと思います。
(テストサーバーの設定がIP自動取得のため、ルーターのDHCP機能で、その都度IPアドレスが割り振られている状態なのではないでしょうか?)

■IPアドレスの手動設定方法
http://faq.buffalo.jp/app/answers/detail/a_id/15775

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.54%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる