- ベストアンサー
JSPでデータベース接続
JSPを使用してMySQLデータベースに接続しようとしていますが java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)とエラーが出て 接続ができません。 そこで質問なのですが、上記のエラーは何が原因なのでしょうか。MySQLなのかJSPなのか、エラーの原因がわかりません。どなたか原因を教えていただけないでしょうか。お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
おまけ >con = DriverManager.getConnection(url,"****","\\\\") Connection con = DriverManager.getConnection(url,"****","\\\\") >stmt = con.createStatement(); Statement stmt = con.createStatement(); ですよね。。。。
その他の回答 (4)
- fortranxp
- ベストアンサー率26% (181/684)
もしかして >con = DriverManager.getConnection(url); con = DriverManager.getConnection(url,"****","\\\\") ****はUSERID \\\\はパスワード
お礼
記述通りにしてみましたところ、 無事表示されるようになりました。 IDとパスワードの挿入位置が違ってたようですね。 まだ始めたばかりで勉強不足なところもあり 大変参考になり、助かりました。 ありがとうございました。
Access denied for user ''@'localhost' (using password: NO) となっていますが、ログインするユーザ名が指定されていませんね。普通に指定してあってはじかれたなら、Access denied for user 'root@localhost'というような形になるはずです。なんか指定の仕方が変な気がしますが、ユーザ名はどのように指定してますか? 接続しているあたりの処理を補足していただけると回答しやすくなると思います。
補足
処理ですが、 // ドライバ指定 Class.forName("org.gjt.mm.mysql.Driver"); // データベース(test)へ接続 String url = "jdbc:mysql://localhost:3306/test"; con = DriverManager.getConnection(url); // ステートメントオブジェクトを生成 stmt = con.createStatement(); // テーブル(tes)の行を全て取得するSQL文を作成 String sql = "select * from tes"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); 上記のようにすると質問文のエラーが表示されます。 しかし、 String user = "ABC"; String pass = "abc"; String db = "test"; と(仮に)定義し、データベースへ接続の部分を String url = "~test",user,pass,db; とすると「JSPクラスをコンパイルできません」 と表示されます。
- fortranxp
- ベストアンサー率26% (181/684)
>JSPを使用してMySQLデータベースに接続しようとしていますが 通常のJavaアプリからやったらどうなりますか?
補足
Javaファイルを作成して試してみたところ 接続できました。
- akane_210
- ベストアンサー率60% (3/5)
順序だてて物事を整理していくと問題解決が早いと思いますよ。 ますは、 データベースが設定されているのか。 接続しようとしているユーザは設定済みか。 コンソール等から接続できるのか。 を調べてみてはどうでしょう? コンソール等からJSPで接続しようとしているユーザで 接続できるなら問題はJSP側にありますし、そうでないなら MYSQL側に問題があると思います。
補足
Javaファイルでの接続が成功したので JSPに問題があるとわかりました。
お礼
質問に対して回答をくださった皆さん、 この場を借りてお礼を言わせてもらいます。 本当にありがとうございました。
補足
上記のように記述した場合、 呼び出したり、エラーが起こったりと 不安定な状態になりました。 一体何が原因なのでしょうか。 回答ありがとうございました。