竹形誠司 ブログ
ご質問    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
大変お世話になっております。
今回、連絡申し上げますのは、当方の責任に属するもので、
連絡するのに、躊躇いたしました。勝手なお願いではありますが、
なにか、アドバイス、または、類似トラブル紹介でもあればと思い、
投稿させて頂きました。
先般、先生のブログシステムを我が家のイベント、活動記録として
有効に活用させて頂いており、現在も継続使用中の旨連絡いたしておりました。
しかし、XPパソコン(Sony vgc-v172ebモデル)で、老朽化し、いつ壊れても
おかしくないような、騒音を発する状態ですので、安物ですが自作パソコンAMD64
にVISTA OSをインストールし、使用中と同じ、バージョンのApach,Apache+tomcat,Mysql
JDKの環境を作成し、Web サーバーとして、概ね作動できましたが、標記、index.jsp のjamyto2
のプログラム動作で、エラーとなっております。
なお、tomcat 動作チェックプログラムの
http://mnakaso.no-ip.com/jamyto2/hello.jspでは’まいど’と正しく、表示されますし、http://mnakaso.no-ip.com/jsp-examples/や、
servletsサンプルもOKであります。
(mnakaso.no-ip.comは、当方のddns ドメイン名)
jamyto2に関わるエラーですが、jamyto2のDBをmysql/data/にオーバーライドコピーし、XPでは問題もなく、また、別のdbですが、Perl CGIでのDBアクセスでもこの方法で、問題は出ませんでした。
javaでは、このような強引なやり方ではだめなのでしょうか。
先生には、ご多忙のおり、申し訳なく思いますが、パソコンの終焉が我が家の
ブログの終焉となるのでしょう。自分の技術不足が悔やまれます。
以下参考資料でございます。

エラーメッセージは、以下の通りです。
type 例外レポート

メッセージ

説明 The server encountered an internal error () that prevented it from fulfilling this request.

例外

org.apache.jasper.JasperException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: 'java.sql.SQLException: Access denied for user: 'Mulder@mnakaso.no-ip.com' (Using password: YES)'.

** BEGIN NESTED EXCEPTION **

java.sql.SQLException
MESSAGE: Access denied for user: 'Mulder@mnakaso.no-ip.com' (Using password: YES)

STACKTRACE:

java.sql.SQLException: Access denied for user: 'Mulder@mnakaso.no-ip.com' (Using password: YES)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2851)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:750)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1205)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1898)
    at com.mysql.jdbc.Connection.<init>(Connection.java:437)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
    at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
    at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
    at jamyto2.BlogArticleList.getTopArticleId(BlogArticleList.java:57)
    at org.apache.jsp.blog.M.index1_jsp._jspService(org.apache.jsp.blog.M.index1_jsp:117)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:425)
    at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:452)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1196)
    at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **






投稿:ms_naka[nakaso]/2011年 10月 20日 21時 53分 /更新:2011年 10月 20日 21時 56分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
竹形です。どうも、こんばんは。
データベースのアクセスでエラーになっているので、
MySQLの方でユーザに権限が割り当てられていないのではないでしょうか。
権限の割り当て方についてはMySQLの grant 命令を調べてみてください。
投稿:竹形 誠司[takegata]/2011年 10月 20日 22時 01分 /更新:2011年 10月 20日 22時 01分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
早速の御確認、感謝致します。
先生の著作で、p32で,
grant 例がありますが、Mulder@localhost に対するユーザーパスワード
あり、エラーにあったMulder@mnakaso.no-ip.com で、
設定しますと、−ipのところで、拒絶されており、localhostで、
トライはしましたが、同じエラーとなり、受付しませんでした。
Mulder@localhost のエラーであれば、よかったのですが
grant に関し、勉強してみます。
ご返事ありがとうございました。

投稿:ms_naka[nakaso]/2011年 10月 20日 22時 24分 /更新:2011年 10月 20日 22時 25分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
TomcatとMySQLが同じサーバなら@localhostでいいはずなんですけど。
@localhostを付けずにgrantしてみたらどうなりますかね。
投稿:竹形 誠司[takegata]/2011年 10月 20日 22時 33分 /更新:2011年 10月 20日 22時 33分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
あと、もう一つ

grant命令でユーザを指定するときに

'Mulder'@'mnakaso.no-ip.com'

のように、@の前と後ろを別々にシングルクオートしてみてください。

投稿:竹形 誠司[takegata]/2011年 10月 20日 22時 50分 /更新:2011年 10月 20日 22時 50分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
有難う御座います。
mysql>grant all jamyto2.* to 'Mulder'@'mnakaso.no-ip.com' identified by 'mnakaso';
のステートメントを実行しましたら、Query OK 0rows と有効になりましたので、
mysql 再起動。tomcat 再起動を行って、jspを実行しましたが、同じエラー でした。
アドバイス、感謝します。
今後、どうすべきか、悩んでおりますが、過去のdataをクリアして、最初から
実行するか、検討してみます。


投稿:ms_naka[nakaso]/2011年 10月 20日 23時 45分 /更新:2011年 10月 20日 23時 45分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
んー、なんか変ですねぇ。
TomcatとMySQLは同じサーバで動いているのでしょうか。
MySQLが2つ動いているなんてことはないですよねぇ・・・・

投稿:竹形 誠司[takegata]/2011年 10月 20日 23時 50分 /更新:2011年 10月 20日 23時 50分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
先生様
コントロールパネルのサービス(ローカル)を確認しましたが、
やはり、apache,tomacat,mysql,
いずれも、各シングル起動になっておりますが、何か、見落としがあるのでしょう。
XPでは、問題なく、作動しても、なにか移行時のみすがあるよな気がします。
しかし、一般的なページやPERLcgi プログラムは問題なく、稼働し、移行出来来ておりますだけに残念な所となっております。
先生には深夜まで、付き合って頂き、感謝のことばもありません。
当方、クールダウンする意味で、すこし、合間をとります。
有難うございました。
それにしても、素晴らしいブログプログラムであり、このままで、終焉とさせたくありません
ので、今しばらく、努力してまいります。
なにか、ありましたら、ご教授下さいませ。
感謝。
投稿:ms_naka[nakaso]/2011年 10月 21日 00時 34分 /更新:2011年 10月 21日 00時 34分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
そうですか。えーと、では
mysqlのプロンプトでshow databasesやuse *** などを実行してみて、
データベースの内容が正しくコピーされているか確認してみてもらえますか。

投稿:竹形 誠司[takegata]/2011年 10月 21日 00時 49分 /更新:2011年 10月 21日 00時 49分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
昨夜は、先生の追加メールをみないまま、就寝してしまい、すみませんでした。
深夜まで、御心配を賜り、有難うございました。
朝、show databases 、use jamyto2で、確認しました所、
databasesでは、3種のbbs,blog,commentのDBがあり、select * from
jamyto2.blog では、ブログデータが閲覧できました。

その後、root や、Mulder などのpassword を再設定しておりましたら
$mysql -u root などまで、リジェクトされましたので、一旦、mysqlを削除
再インストールし、出直してみます。
お手数おかけし、申し訳ありませんでした。
このような、恥ずかしいメールの連続ですので、御都合が悪ければ、投稿削除も
構いません。お手数をかけます。
投稿:ms_naka[nakaso]/2011年 10月 21日 09時 35分 /更新:2011年 10月 21日 09時 35分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
それはMySQLのpassword関数が怪しいですね。

http://www.natzworks.com/digital/2010/423.html

↑のあたりを確認してみてください。
投稿:竹形 誠司[takegata]/2011年 10月 21日 10時 00分 /更新:2011年 10月 21日 10時 00分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
先生から、アドバイスを頂きましたpassword()関数の文字数変化について、新しい勉強をさせて貰いました。
単純に考えておりましたので、MYSQLの動作が上手くいかないものですから、XP環境のMYSQLバージョン(mysql-3.23.47-win)と
先生のCDROMバージョン(mysql-4.0.24-win)を交互にインストール削除を繰り返し、その都度、set password を繰り返しておりました。
ご紹介のあったページを斜読した所、アプリケーションプログラムに対するパスワードハッシュpassword()関数変更の影響としては、
MySQL 4.1 以上とありました。今現在のインストールバージョンは、mysql-4.0.24バージョンですが、以下のトライをおこないました。
これによりますと、OLD_PASSWORD() を使用して、明示的に短いハッシュを生成するようにできる。
たとえば、アカウントに短いパスワードを割り当てるには、以下のように UPDATE を使用するとのこと。
例。
mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
    -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
とありましたので、
use jamyto2で、databaseを選択。(mysqlプロンプトから要求されましたので。)
上記の'mypass'->'mnakaso'
      'some_host'->'mnakaso.no-ip.com'
      'some_user'->'nakaso'
と実行しましたが、ERROR 1146:jamyto2.user doesn't exist
又、userをnakasoにしたら、ERROR 1146:jamyto2.nakaso doesn't exist
と、はねられてしまいました。よくわからないこと実行した結果ですので、
仕方がありません。今後は、まじめに、
今一度、先生の教科書にもどり、時間はかかり、何時になるかは
判りませんが、最初からやり直してみます。
これまで、大変お手数をおかけし、心中より、感謝申し上げます。
有難うございました。
投稿:ms_naka[nakaso]/2011年 10月 21日 14時 49分 /更新:2011年 10月 21日 14時 50分
by ms_naka[nakaso]
A)java.sql.SQLException
 MESSAGE: Access denied for user: 'Mulder@mnakaso.no-  ip.com' (Using password: YES)
 上記エラーの件、当方のとんでもない環境エラーが原因で、発生していた可能性が
 あります。
 エラーメッセージは、password エラーの表示でしたが、jdbc driver も、
 関連がないか、念の為、tomcat のcommon/lib のドライバーを確認して
 見ました所、
 3.1.8-bin の他に、5.1.6-binがあり、このハイバージョンの方が、
 機能していることがわかり、試しに、これを削除し、3.1.8-binで作動させて
 みました所、動作できました。 本来ならこのハイバージョン
 の方が、合理的ですが、なぜ、XPでOK だった5.1.6-binが駄目なのか、
 まだ、本当の理由を理解しておりません。しかし、3.1.8-binで、
 Access denied が発生せず、
 VISTA環境でも、今後、ブログ以外の、JAVA_APPでの検証も、
 残っておりますが、
 一番大切なブログが、無事、稼働いたしましたので、仮報告をさせて頂きます。
 お騒がせ申し訳ありません。
ミスの状況
1)tomcat のcommon/lib に2種のドライバーをミス配置したこと。
  (CDROMのドライバーを無確認で、コピーしたこと。)
2)あまりにも、エラーメッセージにこだわったこと。
  エラーメッセージの解析能力がないこと。

 小生は、これまで、同じようなミスを犯し、先生からも、指摘されており、
 一度は再確認していた訳でしたが、見落としておりました。
 竹形先生殿、深夜まで、貴重な時間を裂いていただき、本当に、申し訳なく、
 お詫び申し上げます。
 javaに関しては、他のトラブルシューティングサイトもありますが、ここまで、
 対応して頂けるサイトは、他にはありません。有難うございます。
 以上で、XPから、VISTA環境移行課題の
 Apach,ApacheTomcat,JDK,Mysql JavaAPPなど、
 主要ソフトの移行が概ね、目途がつきつつあります。
B)なお、先生が作成された、ブログ_プログラムは、使いやすく、
 惚れ込んでおります。
 折々に、自分の気持ちを書くことで、気持の整理がつき、癒されております。
 動画もFLVタイプですので、android 携帯からも、閲覧でき、
 うれしくてなりません。有難うございました。
 ただ、java言語は難しく、driver の違いで、Access denied for user:  'Mulder@mnakaso.no-ip.com' (Using password: YES)と
 表示されると、初心者の私には、パニックとなるエラーであり、
 不勉強が悔やまれます。
 完全なエラー原因解決ではなく、単に、動作回復解決にすぎませんが、
    以上、報告申し上げます。







投稿:ms_naka[nakaso]/2011年 10月 22日 17時 24分 /更新:2011年 10月 22日 17時 26分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
ドライバが新しすぎたんですか。そんなことってあるんですね。
何はともあれ解決して良かったですね。
投稿:竹形 誠司[takegata]/2011年 10月 22日 20時 53分 /更新:2011年 10月 22日 20時 53分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
プログラム index.jsp のエラーの件,続報と訂正

 ブログのAccess denied for user: 'Mulder@mnakaso.no-ip.com' (Using password: YES)の原因不詳のまま、
 2重ドライバーの削除で、アクセス拒否が出ず、動作する旨、
  先生に仮報告させて  頂きました。
  しかし、翌日、PC再稼働したら、同じ、トラブルになりました。
 確かに、ハイバージョンドライバーを削除したら、動作したことは、
  間違いありませんでしたが、
 先生が疑問に思われた通り、やはり、ドライバー問題の他に、
  passwordに関わる 権限変更とその反映の仕方 と推察される現象が
  出てまいりましたので、大変恥じ入る内容となりますが、
  敢えて、連絡申し上げます。
§1 再発エラー現象と対応。
  その後、翌日、PC起動し、ブログに入った所、
  前日、と同じ、Access denied for user:エラーとなりました。自分でも
  信じられない思いでしたが、以下の対応をとりました。
§2 一度目のトラブルシューティングとして、

 1)ドライバーの再確認。ー>tomcat/common/lib ->jdbc driver 3.1.8-bin のみ。
 2)先生から、指示を頂いた、Mulderの権限変更の再実施。
  (grant all on jamyto2.* to 'Mulder'@'mnakaso.no-ip.com' identified by 'TrustNo1';)
   
  この作業後、、ブログを立ち上げましたら、エラーにはならず、
  正常に動作いたしました。

  しかし、念の為、PCをシャトダウン&起動操作後、
  ブログを起動しましたが、やはり、
   
  同じAccess denied for user:エラーが発生しました。
  この現象は、あたかもgrant の権限変更の反映保存がないように、
  思いました。
  この為、さらに、
§3 2度目のトラブルシューティング として、
  grant の権限変更の反映コマンドとして、reload のweb 紹介があり、
  $mysqladmin -unakaso -pmnakaso reload のコマンドを与え、

  PC再起動、WEB起動後、ブログを立ち上げますと、正常に動作しました。
  今度は、PCシャトダウン&起動操作を、3度、繰り返し、確認しましたが、
  いずれも、
  ブログで、Access denied for userエラーにならず、
  正常動作致しました。
  今回も結果オーライですが、
  しかし、この対応で、Access denied for user: エラーが完全に
  解消したのかどうか、全く
  確信が持てず、悩んでおります。
  この連絡は、更に、3日経過後の、29日、PC稼働、ブログ立ち上げ
  、正常なブログ作動の確認を行い、投稿しておりましす。
  

§4 トラブルの総括。

 
  今回は、先生プログラムと関係のない所で、お手数をわずらわすことになり、
  申し訳なく思っております。
  
  mysqlサイトのページでは、クライアント アプリケーションは、
  データベース名をキャッシュしていることがあるため、実際に
  別のデータベースを変更するか、
  FLUSH PRIVILEGES ステートメント を実行しないと、
  権限効力を発揮できない可能性があると出ておりましたが、
  reloadと flush の使い分けが理解できません。
  
  最後に、先生には、いつも、結果オーライの不正確な連絡ばかりで、
  すみませんが、
  前回の投稿内容の訂正、現状報告をさせて頂きます。

  この投稿にあたり、2日間、5回のPC起動による動作結果、
  確認をいたしましたが
  正しく、ブログ動作致しております。
  以上。


  
  



投稿:ms_naka[nakaso]/2011年 10月 29日 17時 53分 /更新:2011年 10月 29日 17時 55分
RE:ブログ プログラム index.jsp のエラーの件
by 竹形 誠司[takegata]
竹形です、どうも、コメントが遅くなりました。
reloadとflushほとんど使ったことがないので私もよく分かりません。
機会があれば調べて何か分かればまたブログに書きますね。
投稿:竹形 誠司[takegata]/2011年 11月 06日 15時 49分 /更新:2011年 11月 06日 15時 49分
RE:ブログ プログラム index.jsp のエラーの件
by ms_naka[nakaso]
竹形先生様
御確認感謝します。
しかし、その後、ブログが、正常に、動作しており、うれしい限りです。
有難うございました。

投稿:ms_naka[nakaso]/2011年 11月 06日 17時 35分 /更新:2011年 11月 06日 17時 36分