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

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

新規登録して質問してみよう
ただいま回答率
85.37%
MySQL Workbench

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

MySQL

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

Q&A

3回答

35030閲覧

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

enom

総合スコア13

MySQL Workbench

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

MySQL

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

0グッド

1クリップ

投稿2017/12/04 01:42

###前提・実現したいこと
現在、サーバーに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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

サーバ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というホストでの接続のみで、外部からの接続が不可能になっています。

userhost
userlocalhost

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 01:58

編集2017/12/04 02:34
masaya_ohashi

総合スコア9210

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enom

2017/12/04 02:07

ご回答ありがとうございます。 すみません。エラーメッセージに書き漏らしがありました。 Failed to Connect to MySQL at 172.##.##.##:3306 with user user Access denied for user 'user'@'localhost'(using password:YES) という感じで、指し先はサーバー側に行っているようなきがするのですが、たしかにユーザーはローカルのものを使っている感じがしますね。どこの記述を変えればユーザーのドメインが変わるのか調べてみようと思います。
enom

2017/12/04 02:27

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

2017/12/04 02:28

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

2017/12/04 02:31

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

2017/12/04 04:14

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

2017/12/04 04:20

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

2017/12/06 00:54

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

退会済みユーザー

2017/12/06 00:57

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

2017/12/06 00:58

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

2017/12/06 01:02

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

2017/12/06 01:04

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

2017/12/06 01:07

コマンドは、【mysql -u user -h 172.##.##.## -p】という感じです。 ワークベンチは自分のパソコンのDBには接続できます。他のPCはこれから確認してみます。
masaya_ohashi

2017/12/06 01:16

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

0

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

SQL

1flush privileges

投稿2017/12/04 03:03

yambejp

総合スコア116443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enom

2017/12/04 04:08

ご回答ありがとうございます。 やってみましたが、なかなか解決にいたりません。
yambejp

2017/12/04 04:19

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

2017/12/06 00:50

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

0

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

に設定してみて下さい

投稿2017/12/04 02:12

date

総合スコア1820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enom

2017/12/04 02:34

ご回答ありがとうございます。 今回、SSHは利用しないつもりなんですが、別PCで接続する場合って、SSHが必須なんでしたっけ?
date

2017/12/04 02:46

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

2017/12/04 04:11

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問