Newsgroup: it.comp.os.linux.iniziare
Titolo: mysql e tomcat

Sulla mia macchina č installato tomcat 4.1.18 (ditribuzione binaria dal 
sito ufficiale) e mysql 4.0.11 (sempre distribuzione binaria dal sito 
ufficiale).
I due software, presi singolarmente funzionano correttamente.
Ho seguito le istruzioni dell'HOWTO presente sul sito del progetto 
jakarta (JNDI Datasource HOW-TO: 
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html
)
ed ho cercato di utilizzare il driver "Connector/J" (sempre dal sito mysql).
Il problema e' che tomcat non riesce a connettersi a mysql e nel file 
logs/catalina.out l'eccezione riportata sotto.
Non ho idea di cosa possa essere a causare il problema.
Se uso il client mysql tutto sembra a posto. Quali possono essere le 
cause? Problemi con i permessi dell'utente? Problemi di autenticazione?
Non so da che parte cominciare, vi prego aiutatemi.
Andrea
-----------------------------------
org.apache.commons.dbcp.DbcpException: java.sql.SQLException: Server 
connection failure during transaction.
Attemtped reconnect 3 times. Giving up.
	at 
org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:85)
	at 
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:184)
	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(Unknown 
Source)
	at 
org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:117)
	at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:110)
	at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
	at foo.DBTest.init(DBTest.java:23)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java:49)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at 
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
	at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
	at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
	at java.lang.Thread.run(Thread.java:536)
Caused by: java.sql.SQLException: Server connection failure during 
transaction.
Attemtped reconnect 3 times. Giving up.
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1639)
	at com.mysql.jdbc.Connection.<init>(Connection.java:485)
	at com.mysql.jdbc.Driver.connect(Driver.java:341)
	at 
org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:83)
	... 42 more

 logs/catalina.out l'eccezione riportata sotto.
Il messaggio di errore non dice niente, salvo il fatto che Tomcat non
riesce a collegarsi. Sei sicuro che MySQL sia avviato e che stia
funzionando sulla porta canonica 3306?
Davide


Si sono sicuro purtroppo.
Ho anche provato a non utilizzare tomcat ma un semplice programma java e 
continua a dare esattamente lo stesso errore.
Non so piu' che pesci pigliare.
Grazie, Andrea Polci


Si sono sicuro purtroppo.


Ho risolto. Il problema era nei permessi che aveva l'utente mysql e piu' 
precisamente nel fatto che erano consentite solo connessioni da 
localhost (come indicato nel tutorial).
Stranamente invece le connessioni da java venivano viste come 
provenienti dall'IP pubblico della macchina.
Me ne sono accorto facendo una prova da un'altra macchina e consentendo 
all'utente di connettersi da questa.
Grazie dell'aiuto.
Andrea Polci