回答編集履歴

2

追記2

2017/12/04 02:34

投稿

masaya_ohashi
masaya_ohashi

スコア9210

test CHANGED
@@ -27,3 +27,11 @@
27
27
  Bから接続したいのであれば、この辺を参考にBのIPアドレスを追加してください。
28
28
 
29
29
  [https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e](https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e)
30
+
31
+
32
+
33
+ # 追記2
34
+
35
+ こんな記事を見つけました。AのMySQL Server側で、bind-addressが127.0.0.1になっていませんか?
36
+
37
+ [http://xyk.hatenablog.com/entry/2013/11/08/142548](http://xyk.hatenablog.com/entry/2013/11/08/142548)

1

追記

2017/12/04 02:34

投稿

masaya_ohashi
masaya_ohashi

スコア9210

test CHANGED
@@ -5,3 +5,25 @@
5
5
  `Access denied for user 'user'@'localhost'(using password:YES)`というエラーメッセージを見る限り、`localhost`に向けて接続しようとしています。Bから`localhost`への接続をする場合、接続先はAではありません。Bで起動しているMySQL Serverに向けて接続しようとします。Aから`localhost`への接続をする場合、接続先はAとなります。`localhost`という名前のホストは「自分自身」を指しますので、Aでlocalhostで繋がったからBでもlocalhostで接続できないのはおかしい!というのは全くの誤りです。
6
6
 
7
7
  BからAへ接続するには対象のIPアドレスが必要です。同一LAN内であればAのローカルIPが、ネットワークごしであればAのグローバルIPが必要です。さらに、ネットワーク越しの場合、ルータにポートマッピング設定が必要です。
8
+
9
+
10
+
11
+ # 追記
12
+
13
+ もしかしてuserというユーザを作るときにHost設定にlocalhostだけを設定していませんか?
14
+
15
+ 「select user, host from mysql.user where user='user'」というクエリを実行して、userに許可されたHostがlocalhostだけになっていないか確認してください。
16
+
17
+ こんな感じだったら駄目です。これだとAのMySQL Serverに接続できるのはAのlocalhostというホストでの接続のみで、外部からの接続が不可能になっています。
18
+
19
+ |user|host|
20
+
21
+ |--|--|
22
+
23
+ |user|localhost|
24
+
25
+
26
+
27
+ Bから接続したいのであれば、この辺を参考にBのIPアドレスを追加してください。
28
+
29
+ [https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e](https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e)