質問するログイン新規登録

回答編集履歴

2

追記2

2017/12/04 02:34

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -12,4 +12,8 @@
12
12
  |user|localhost|
13
13
 
14
14
  Bから接続したいのであれば、この辺を参考にBのIPアドレスを追加してください。
15
- [https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e](https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e)
15
+ [https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e](https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e)
16
+
17
+ # 追記2
18
+ こんな記事を見つけました。AのMySQL Server側で、bind-addressが127.0.0.1になっていませんか?
19
+ [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

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