※ ChatGPTを利用し、要約された質問です(原文:JDBCレルムによるFORMパスワード認証)
JDBCレルムによるFORMパスワード認証のエラー
このQ&Aのポイント
データベースに接続できず、致命的エラーが発生しました
server.xmlのデータベースの設定に問題がある可能性があります
MySQLのドライバーに関して正しい設定が必要です
JDBCレルムによるFORMパスワード認証
以下のようなエラーが出てデータベースに接続できません:
2010/03/28 4:13:21 org.apache.catalina.realm.JDBCRealm start
致命的: データベース接続オープン中に例外が発生しました
java.sql.SQLException: org.gjt.mm.mysql.Driver
at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:704)
at org.apache.catalina.realm.JDBCRealm.start(JDBCRealm.java:786)
server.xmlのデータベースに関する部分は以下の通りです:
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionURL="jdbc:mysql://127.0.0.1/authorization"
driverName="org.gjt.mm.mysql.Driver"
connectionName="root"
connectionPassword="" ←ここは空欄でいいですか?
roleNameCol="role"
userCredCol="password"
userNameCol="username"
userRoleTable="roles"
userTable="users"
/>
…検索してみるとorg.gjt.mm.mysql.Driverは古いのでcom.mysql.jdbc.Driverを使うべき、とありました
(http://www.javadrive.jp/servlet/auth/index5.html)。
しかし、org.gjt.mm.mysql.Driverをcom.mysql.jdbc.Driverに変えてみましたが、結果は変わりません。
本来、どちらが正しいのでしょうか? ←まずはこの質問の回答をお願いします
あと、自分のMySQLはユーザー名は"root"で設定してあるのですが、パスワードは設定していません
(つまり、MySQLをコマンドラインから起動するときはパスワードを空欄のままEnterを押して入れます)。
自分の場合、connectionNameとconnectionPasswordは上記の通りで良いのでしょうか? ←次にこの質問の回答をお願いします
Tomcatのライブラリは以下の通りです:
Directory of C:\apache-tomcat-6.0.26\lib
[.] [..] annotations-api.jar
catalina-ant.jar catalina-ha.jar catalina-tribes.jar
catalina.jar el-api.jar jasper-el.jar
jasper-jdt.jar jasper.jar jsp-api.jar
servlet-api.jar tomcat-coyote.jar tomcat-dbcp.jar
tomcat-i18n-es.jar tomcat-i18n-fr.jar tomcat-i18n-ja.jar
MySQLのデータはちゃんと入力されており、MySQL単体であれば、もちろん動作します:
mysql> select * from roles;
+----+----------+--------+
| id | username | role |
+----+----------+--------+
| 1 | nakamura | member |
| 2 | tanaka | member |
+----+----------+--------+
mysql> select * from users;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | nakamura | 1234 |
| 2 | tanaka | 5678 |
+----+----------+----------+
…では、宜しくお願いします。
お礼
仰る通りにJDBCドライバを入れたらエラーが消えてプログラムも動きました! そんなドライバが要るなんて知りませんでした。 これでようやくMySQLの機能を操作できるんですね。ワクワクしてきました。 ありがとうございました!