MySQL에서 'localhost, 127.0.0.1' 두 가지 호스트에 대한 권한(user, db table)을 모두 부여하셨나요?
MySQL 의 'mysql' DB 에서 user, db Table 은 아래와 같이 설정되어 있어야 합니다.
사용자명이 'nmail'이고 디비명이 'nmail'일때의 올바른 설정 예제)
mysql> SELECT Host, User, Password FROM user WHERE User='nmail';
+-----------+-------+------------------+
| Host | User | Password |
+-----------+-------+------------------+
| 127.0.0.1 | nmail | 0af562342434324d |
| localhost | nmail | 0af562342434324d |
+-----------+-------+------------------+
=> User, Password 는 동일하고 Host 명만 두가지여야함.
mysql> SELECT Host, User, Db FROM db WHERE User='nmail';
+-----------+-------+-------+
| Host | User | Db |
+-----------+-------+-------+
| 127.0.0.1 | nmail | nmail |
| localhost | nmail | nmail |
+-----------+-------+-------+
=> User, Db 는 동일하고 Host 명만 두가지여야함.
이 부분을 점검해보시고 mysql 과 톰켓을 재시작해보시기 바랍니다.
이봉용 님이 쓴 글입니다.
--------------------------------------------------------------------
:※ 필수입력정보 ※
:
:▷ 제품버젼 : nwmail1.1p7
:▷ 사용중인 주소(URL) : http://222.234.2.105:8080
:▷ 문제발생시 메뉴/주소 :
:▷ 문제발생시 에러메세지
: :
:Error: 500
:Location: /source/index.jsp
:Internal Servlet Error:
:
:javax.servlet.ServletException: Cannot create bean of class user.table.MailUser
: at source._0002fsource_0002findex_0002ejspindex_jsp_0._jspService(_0002fsource_0002findex_0002ejspindex_jsp_0.java:154)
: at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
: at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)
: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
: at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)
: at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)
: at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
: at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
: at org.apache.tomcat.core.Handler.service(Handler.java:287)
: at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
: at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
: at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
: at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
: at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
: at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
: at java.lang.Thread.run(Thread.java:534)
:
:
:
:▷ 질문내용
: : http://222.234.2.105:8080으로 실행시 위와 같이 에러가 발생됩니다.
:다른분의 질문에 대한 답변을 보고 확인 한 결과 같은 에러가 발생 되고 있습니다.
:그리고, logs/pool.log 의 내용은 다음과 같습니다.
:Sun Nov 20 23:24:06 KST 2005: JDBC driver 등록 :org.gjt.mm.mysql.Driver
:Sun Nov 20 23:24:06 KST 2005: Initialized pool mydb
:Sun Nov 20 23:24:06 KST 2005: Initialized pool mydb2
:Sun Nov 20 23:24:06 KST 2005: Can't create a new connection for jdbc:mysql://localhost:3306/nmail?useUnicode=true&characterEncoding=euc-kr
:java.sql.SQLException: Invalid authorization specification: Access denied for user: '****@****' (Using password: YES)
: at org.gjt.mm.mysql.MysqlIO.init(MysqlIO.java:330)
: at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:261)
: at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89)
: at org.gjt.mm.mysql.Driver.connect(Driver.java:167)
: at java.sql.DriverManager.getConnection(DriverManager.java:512)
: at java.sql.DriverManager.getConnection(DriverManager.java:171)
: at beans.DBConnectionManager$DBConnectionPool.newConnection(DBConnectionManager.java:423)
: at beans.DBConnectionManager$DBConnectionPool.getConnection(DBConnectionManager.java:344)
: at beans.DBConnectionManager.getConnection(DBConnectionManager.java:69)
: at beans.DBHandler.init(DBHandler.java:33)
: at user.table.MailUser.initDBHandler(MailUser.java:603)
: at user.table.MailUser.setClassInfo(MailUser.java:1583)
: at user.table.MailUser.<init >(MailUser.java:89)
: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
: at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
: at java.lang.Class.newInstance0(Class.java:308)
: at java.lang.Class.newInstance(Class.java:261)
: at java.beans.Beans.instantiate(Beans.java:204)
: at java.beans.Beans.instantiate(Beans.java:48)
: at source._0002fsource_0002findex_0002ejspindex_jsp_0._jspService(_0002fsource_0002findex_0002ejspindex_jsp_0.java:152)
: at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
: at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)
: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
: at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)
: at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)
: at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
: at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
: at org.apache.tomcat.core.Handler.service(Handler.java:287)
: at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
: at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
: at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
: at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
: at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
: at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
: at java.lang.Thread.run(Thread.java:534)
:
:그리고 db.properties 의 내용은
:drivers=org.gjt.mm.mysql.Driver
:logfile=/usr/local/jakarta-tomcat-3.2.3/logs/pool.log
:
:/ mydb - Nmail DB
:mydb.url=jdbc:mysql://localhost:3306/nmail?useUnicode=true&characterEncoding=euc-kr
:mydb.maxconn=0
:mydb.user=nmail
:mydb.password=nmail
:
:/ mydb2 - External member DB (사용하지 않을경우엔 mydb와 동일한 정보를 넣으십시오.)
:mydb2.url=jdbc:mysql://netpidb.com:3306/nmail?useUnicode=true&characterEncoding=euc-kr
:mydb2.maxconn=0
:mydb2.user=nmail
:mydb2.password=nmail
:의 내용입니다. 에러의 발생 원인과 답변 부탁드립니다.
:그럼 이만.
:좋은 하루가 되길..
: