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

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

ただいまの
回答率

91.35%

  • MySQL

    4382questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • MySQL Workbench

    17questions

    MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

MySQLワークベンチから、サーバーのDBにアクセスできない

受付中

回答 3

投稿 2017/12/04 10:42

  • 評価
  • クリップ 0
  • VIEW 102

enom

score 5

前提・実現したいこと

現在、サーバーにMySQLをインストールし、ユーザーの作成を行いました。
そして、別PCのMySQLワークベンチから接続しようとしているのですが、エラーが出て接続できません。
どうすれば接続できるでしょうか。あるいは、どこを確認すれば接続に近づくでしょうか。

発生している問題・エラーメッセージ

Access denied for user 'user'@'localhost'(using password:YES)

試したこと

試しにサーバー側のファイアーウォールを切ってみてもだめでした。

作成したユーザーは
Limit to Hosts Matching : %
と設定されていることは確認しました。

また、Administrative Roles はすべてチェックされています。

ホスト、ポート、ユーザー名、パスワードが正しいことは何度も確認しています。

何卒、ご助言をお願い致します。

補足情報(言語/FW/ツール等のバージョンなど)

MySQL5.7
MySQL Workbench 6.3

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 3

+1

サーバPC(A)にMySQL Serverが入っており、クライアントPC(B)にMySQL WorkBenchが入っていたとします。

Access denied for user 'user'@'localhost'(using password:YES)というエラーメッセージを見る限り、localhostに向けて接続しようとしています。Bからlocalhostへの接続をする場合、接続先はAではありません。Bで起動しているMySQL Serverに向けて接続しようとします。Aからlocalhostへの接続をする場合、接続先はAとなります。localhostという名前のホストは「自分自身」を指しますので、Aでlocalhostで繋がったからBでもlocalhostで接続できないのはおかしい!というのは全くの誤りです。
BからAへ接続するには対象のIPアドレスが必要です。同一LAN内であればAのローカルIPが、ネットワークごしであればAのグローバルIPが必要です。さらに、ネットワーク越しの場合、ルータにポートマッピング設定が必要です。

 追記

もしかしてuserというユーザを作るときにHost設定にlocalhostだけを設定していませんか?
「select user, host from mysql.user where user='user'」というクエリを実行して、userに許可されたHostがlocalhostだけになっていないか確認してください。
こんな感じだったら駄目です。これだとAのMySQL Serverに接続できるのはAのlocalhostというホストでの接続のみで、外部からの接続が不可能になっています。

user host
user localhost

Bから接続したいのであれば、この辺を参考にBのIPアドレスを追加してください。
https://qiita.com/n0bisuke/items/bd86dd3a79cd7cbcd92e

 追記2

こんな記事を見つけました。AのMySQL Server側で、bind-addressが127.0.0.1になっていませんか?
http://xyk.hatenablog.com/entry/2013/11/08/142548

投稿 2017/12/04 10:58

編集 2017/12/04 11:34

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/12/04 11:07

    ご回答ありがとうございます。
    すみません。エラーメッセージに書き漏らしがありました。

    Failed to Connect to MySQL at 172.##.##.##:3306 with user user

    Access denied for user 'user'@'localhost'(using password:YES)

    という感じで、指し先はサーバー側に行っているようなきがするのですが、たしかにユーザーはローカルのものを使っている感じがしますね。どこの記述を変えればユーザーのドメインが変わるのか調べてみようと思います。

    キャンセル

  • 2017/12/04 11:27

    追記への返信

    host は % のワイルドカードになってるので、大丈夫そうです。

    キャンセル

  • 2017/12/04 11:28

    これはローカルLAN内ですか?

    キャンセル

  • 2017/12/04 11:31

    そうです。
    社内ネットワーク上です。

    キャンセル

  • 2017/12/04 13:14

    追記2への返信

    my.cnf 隠しフォルダ内になかったので、my.ini を確認しましたが、該当の設定はなかったです。
    なかなか深みにハマってしまいました。
    サーバーとクライアントを入れ替えると接続できるので、なにかサーバーの設定がおかしいんだとは思うんですが……。

    キャンセル

  • 2017/12/04 13:20

    netstat -ant で確認してみましたか?設定ファイルを見るよりこちらのログを見るほうが確実にチェックできます。

    キャンセル

  • 2017/12/06 09:54

    やってみたところ、ESTABLISHED にステータスがなっていました。

    調査を継続していたのですが、どうやらクライアント側のワークベンチの問題のようです。
    ・社内の別の人間はワークベンチを通じて接続できた。
    ・私のPCからでもコマンドを通じてなら接続できた。
    ワークベンチを再インストールしてもいかないので、自パソコンのワークベンチは諦めたほうがいいのかもしれないです……。

    キャンセル

  • 2017/12/06 09:57

    SSH トンネルを利用していれば localhost でも接続先は別PCだったりするけどね。(質問者の理解度的にそれはないが)

    キャンセル

  • 2017/12/06 09:58

    コマンドを通じてなら出来た、ということはSSHトンネルは多分関係ないかと思います。うーん…原因に心当たりがないですねぇ。

    キャンセル

  • 2017/12/06 10:02

    コマンドって【mysql -u user -p】で接続って意味ですよね?

    キャンセル

  • 2017/12/06 10:04

    ところでそのWorkbenchで自分のPC(B)のMySQLサーバや、別のPC(A以外)のMySQLサーバには繋がりますか?

    キャンセル

  • 2017/12/06 10:07

    コマンドは、【mysql -u user -h 172.##.##.## -p】という感じです。

    ワークベンチは自分のパソコンのDBには接続できます。他のPCはこれから確認してみます。

    キャンセル

  • 2017/12/06 10:16

    うーん、コマンドで-h指定して外部に出ることができるのであれば、ネットワークの問題でもサーバ側の問題でもなさそうですね。やはりWorkbenchの設定に何か問題がありそうです。念のため接続設定を一度削除して、もう一度作り直してみてはどうでしょう?

    キャンセル

0

どう設定しているかわかりませんが
connection methodを
Standart TCP/IP over SSH
HostName
接続先のsshポート番号
IPアドレス:22
SSHUsername
接続先のsshのユーザ名
admin
SSHPassword
接続先のsshのパスワード

に設定してみて下さい

投稿 2017/12/04 11:12

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/12/04 11:34

    ご回答ありがとうございます。

    今回、SSHは利用しないつもりなんですが、別PCで接続する場合って、SSHが必須なんでしたっけ?

    キャンセル

  • 2017/12/04 11:46

    必須ですね
    standardとlocal socketは自分にしか接続できない
    他のPC・サーバに接続するならSSHの設定が必須です

    キャンセル

  • 2017/12/04 13:11

    ご回答ありがとうございます。

    クライアントPCをサーバーに、サーバーPCをクライアントというように逆にした場合は接続できたので、何か別の問題があると思うのですが、なかなかうまく行きません。

    キャンセル

0

mysqlデータベースのuserテーブルに該当するユーザーが確実に入力されているなら
もしかしたらrootでログインして以下を発行するだけでいけるかもしれません

flush privileges

投稿 2017/12/04 12:03

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/12/04 13:08

    ご回答ありがとうございます。

    やってみましたが、なかなか解決にいたりません。

    キャンセル

  • 2017/12/04 13:19

    ユーザー情報の更新をしてもaccess denyであればユーザー情報が間違えていると思ったほうがよいでしょう。
    一度user@localhost(もしくはuser@%)の情報を消して、再度登録してflush privilegesしてみてください

    キャンセル

  • 2017/12/06 09:50

    調査を継続していたのですが、どうやらクライアント側のワークベンチの問題のようです。
    ・社内の別の人間はワークベンチを通じて接続できた。
    ・私のPCからでもコマンドを通じてなら接続できた。
    ワークベンチを再インストールしてもいかないので、自パソコンのワークベンチは諦めたほうがいいのかもしれないです……。

    キャンセル

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

ただいまの回答率

91.35%

関連した質問

同じタグがついた質問を見る

  • MySQL

    4382questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • MySQL Workbench

    17questions

    MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。