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

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

ただいまの
回答率

90.61%

  • MySQL

    5708questions

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

  • Eclipse Plugin

    73questions

    Eclipseは、IBMによって開発された統合開発環境 (IDE) の一つです。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応しています。Eclipse-Pluginを使う事でIDEの拡張を行う事が可能です。

Eclipse PluginのDBViewerからMySQLに接続できない

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 6,793

horyma

score 9

Eclipse PluginのDBViewerからMySQLに接続できず困っています。

DBを勉強してみようと思ってMySQLの本を1冊読み、コマンドプロンプト上で基本操作を一通りやりました。
次にGUI上で触ってみようと思い、本にもEclispeでできるとあったので挑戦しています。

この記事の記述通りにやっていったのですが、「テスト接続」ボタンを押したところでエラーが出ます。
ユーザーがrootの場合とroot以外(ここではabc)の場合でエラー内容が若干違います。
  • rootの場合→ Access denied for user 'root'@'localhost' (using password: YES)
  • abcの場合 → Access denied for user ''@'localhost' (using password: YES)

もちろん、テスト接続だけができない疑似エラーとかではなく、実際にも接続できていません。
初心者なので、何か根本的な見落としをしていそうな気がしています…。

前提
  • コマンドプロンプトからはrootもabcもデータベースにアクセスできており、CapsLockも効いていないので、パスワード間違いの線は薄そう。
  • 「Windows上でMySQLを開始」は忘れずにしている。

環境
  • Windows 7 : Home Premium 64bit
  • MySQL : 5.6.15.0
  • Connector/J : 5.1.34
  • Eclipse : Kepler Service Release 1
  • DB Viewer : 1.2.2

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

+1

差し支えなければ、mysql.userテーブルの中身がわかるとアドバイスしやすいです。

おそらく現状では、DBViewerの設定で、

ユーザー名:abc
パスワード:[なし]

で接続出来る気がします。

匿名ユーザーの設定があると、外部接続する時にそいつが勝つことがあるので、セキュリティ上消しておくことが推奨されます。こちらに引っかかると、パスワードを指定すると逆に怒られるようになります。


参考までにchefのレシピなどでみる設定です↓
-- 匿名ユーザ削除
DELETE FROM mysql.user WHERE user = '';

SET PASSWORD FOR 'root'@'::1'                   = PASSWORD('password');
SET PASSWORD FOR 'root'@'127.0.0.1'             = PASSWORD('password');
SET PASSWORD FOR 'root'@'localhost'             = PASSWORD('password');

FLUSH PRIVILEGES;

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/03/09 16:15

    ありがとうございます。
    DBViewer側でパスワードを入力せずに試してみたところ、以下のようにエラーメッセージが変わりました。
    Access denied for user 'abc'@'localhost' (using password: NO)

    これまでは匿名ユーザー''でアクセスしようとしていたということだったのか…?
    でも、教えていただいた匿名ユーザーの削除を行っても、パスワードを入力すると依然としてAccess denied for user ''@'localhost' (using password: YES)になります。

    次にabcのパスワードを''に変更したのですが、依然としてエラーメッセージが表示され、ユーザー認証できていません。

    mysql.userは以下のようになっています。(他に必要な列があれば、指定していただければと思います)
    +-----------+------+------------+-------------+-------------+
    | host | user | grant_priv | update_priv | delete_priv |
    +-----------+------+------------+-------------+-------------+
    | localhost | root | Y | Y | Y |
    | localhost | abc | Y | Y | Y |
    +-----------+------+------------+-------------+-------------+
    この表の内容は、匿名ユーザーの削除をする前と後で、変わりませんでした。

    キャンセル

  • 2015/03/09 20:01

    mysql.userテーブルのレコードを見ましたが、もともと匿名ユーザーはいませんね。問題ないと思います。

    すみません、見落としていましたがコマンドプロンプト上ではmysqlへの接続、データベースの操作が出来ていたのですね。

    コマンド上では、root、abcでも、接続が出来てselect文などが発行出来るんですよね?

    今一度、EclipseのDBViewer上で設定している、ユーザー名、パスワード、DB名、ポート番号、スキーマを確認して見てはどうでしょうか?

    あと、mysqlが別ポートで2つ起動している可能性はありますか?

    また、お使いのEclipse上でJavaクラスを作成して、mysqlの接続コードを実行するとどうなるかを検証してみるのも何か手がかりになるかもしれません。

    下記ページを参考にサンプルコードを書けると思います。
    http://web.sfc.wide.ad.jp/~tinaba/tutorials/mysql-j/

    jdbcライブラリはDBViewerに設定しているものを使用します。

    Firewallも関係あるかなぁとも思いましが、多分その時は別のエラーメッセージな気もしますし。。

    キャンセル

0

同じマシンであってもJDBC接続の場合はリモート接続と同じ設定をする必要があったかと思います。

下記ページを参考に、localhostの接続を許可するように設定してみてください。
MySQLに外部ホストから接続できるように設定する | Linuxで自宅サーバ構築


(追記)
エラーメッセージから見て原因がuser設定だとは思うのですが。
こちら↓のリンク先はどうでしょう?

MySQL ユーザのホストをワイルドカードで指定してもlocalhostは含まれない | b.l0g.jp

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/03/08 15:20

    ご教示ありがとうございます!
    色々試していますが、まだできていません。
    上記URLの設定をした上で別ページに記載のflush privileges;をしたところ、mysql.userを見るとgrant以外の権限はついているようです。(localhostは既にあったので、追加で%の接続を許可しました)
    引き続き色々試してみます。

    キャンセル

  • 2015/03/08 16:31

    追記しました。

    キャンセル

  • 2015/03/09 16:06

    ありがとうございます。
    %を削除して、改めてlocalhostも追加してみましたが、未だにできていません…。
    なお、上で付けられないと書いたgrant権限については、付けられました。

    キャンセル

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

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

関連した質問

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

  • MySQL

    5708questions

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

  • Eclipse Plugin

    73questions

    Eclipseは、IBMによって開発された統合開発環境 (IDE) の一つです。高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応しています。Eclipse-Pluginを使う事でIDEの拡張を行う事が可能です。