🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

2413閲覧

MySQLへの接続失敗

satoshi08

総合スコア4

MySQL

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2019/12/31 08:25

編集2020/01/01 09:23

前提・実現したいこと

現在サーブレットとMySQLを用いて、ローカル環境で簡単なWebアプリを作成しています。
使いたいDB名は「shift」、Table名は「memberlist」なのですが、うまくデータベースに接続できません。

発生している問題・エラーメッセージ

メッセージは自分でExceptionParametersというクラスに宣言したもので、下のようなものです。 public static final String DATABASE_CONNECTION_EXCEPTION_MESSAGE2="データベースへの接続時にエラー"; スタックトレースはしたのような感じです。わかるようでしたらお願いします。 shift.exception.DatabaseException: データベースへの接続時にエラー at shift.dao.DAOBase.open(DAOBase.java:26) at shift.dao.MemberDAO.getmemberInfoBean(MemberDAO.java:23) at shift.MemberinfoServlet.doGet(MemberinfoServlet.java:28) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at filter.ExampleFilter.doFilter(ExampleFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLSyntaxErrorException: Access denied for user 'user'@'localhost' to database 'shift' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at shift.dao.DAOBase.open(DAOBase.java:20) ... 29 more

該当のソースコード

java

1protected void open() throws DatabaseException, SystemException { 2 try { 3 Class.forName(DAOParameter.DRIVER_NAME); 4 con = DriverManager.getConnection(DAOParameter.CONNECT_STRING, 5 DAOParameter.USERID, DAOParameter.PASSWORD); 6 } catch (ClassNotFoundException e) { 7 throw new SystemException( 8 ExceptionParameters.SYSTEM_EXCEPTION_MESSAGE, e); 9 } catch (SQLException e) { 10 throw new DatabaseException( 11 ExceptionParameters.DATABASE_CONNECTION_EXCEPTION_MESSAGE2, 12 e); 13 } 14 }

試したこと

この部分の2番目のcatchのメッセージが表示されています。

補足情報(FW/ツールのバージョンなど)

openメソッドの内容

java

1protected void open() throws DatabaseException, SystemException { 2 try { 3 Class.forName(DAOParameter.DRIVER_NAME); 4 con = DriverManager.getConnection(DAOParameter.CONNECT_STRING, 5 DAOParameter.USERID, DAOParameter.PASSWORD); 6 } catch (ClassNotFoundException e) { 7 throw new SystemException( 8 ExceptionParameters.SYSTEM_EXCEPTION_MESSAGE, e); 9 } catch (SQLException e) { 10 throw new DatabaseException( 11 ExceptionParameters.DATABASE_CONNECTION_EXCEPTION_MESSAGE2, 12 e); 13 } 14 }

パラメーター詳細

java

1public class DAOParameter { 2public static final String DRIVER_NAME = "com.mysql.jdbc.Driver"; 3public static final String CONNECT_STRING= 4"jdbc:mysql://localhost:3306/shift?serverTimezone=JST"; 5public static final String USERID = "user"; 6public static final String PASSWORD="password"; 7} 8

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

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

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

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

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

jimbe

2019/12/31 11:21 編集

> この部分の2番目のcatchのメッセージが表示されています。 そのメッセージ(とスタックトレース)を全文ご提示頂けますか.
satoshi08

2019/12/31 12:06

メッセージは自分でExceptionParametersというクラスに宣言したもので、下のようなものです。 public static final String DATABASE_CONNECTION_EXCEPTION_MESSAGE2="データベースへの接続時にエラー"; スタックトレースはしたのような感じです。わかるようでしたらお願いします。 shift.exception.DatabaseException: データベースへの接続時にエラー at shift.dao.DAOBase.open(DAOBase.java:26) at shift.dao.MemberDAO.getmemberInfoBean(MemberDAO.java:23) at shift.MemberinfoServlet.doGet(MemberinfoServlet.java:28) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at filter.ExampleFilter.doFilter(ExampleFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLSyntaxErrorException: Access denied for user 'user'@'localhost' to database 'shift' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at shift.dao.DAOBase.open(DAOBase.java:20) ... 29 more
jimbe

2019/12/31 12:58

ありがとうございます. 出来ればこの情報はご質問のほうの「発生している問題・エラーメッセージ」に頂きたかったのですが. 発生原因は > Caused by: java.sql.SQLSyntaxErrorException: Access denied for user 'user'@'localhost' to database 'shift' ですね. USERID, PASSWORD が使われていないようですが...
satoshi08

2019/12/31 13:00

失礼しました。 使われていないってことは、、どういうことでしょうか?????
m.ts10806

2019/12/31 13:18

質問は編集できますので適宜追記・修正してもらえればと。
jimbe

2019/12/31 13:53

すいません表現変でしたね. そのユーザー・パスワードは MySQL に設定されているでしょうか.
satoshi08

2020/01/01 09:24

あ、登録したら解決しました! jimbeさんありがとうございます!
guest

回答1

0

2番目の例外(ClassNotFoundException)がスローされている、で正しいでしょうか。そうであれば、
データベース接続に必要なライブラリ(mysql用のjarファイル)は、WEB-INF/lib に配置されていますか?

投稿2019/12/31 08:57

A-pZ

総合スコア12011

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

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

satoshi08

2019/12/31 09:02

ご回答ありがとうございます。 SQLExceptionがスローされています。
A-pZ

2020/01/10 07:03

Access denied for user 'user'@'localhost' to database 'shift' がスタックトレースに表示されています。shiftデータベースに接続するためのアカウント情報などを確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問