J'ai raté un paiement pour mon serveur et ils ont suspendu mon compte pendant un jour ou deux. Lorsqu'ils ont relancé le serveur, toutes mes données étaient intactes, mais pour une raison quelconque, Tomcat ne peut pas établir une connexion JDBC avec mon serveur MySql. Ils tournent tous deux sur la même machine et donc j'ai une adresse de liaison de 127.0.0.1.
C'est étrange car j'ai réinitialisé la machine de mon propre chef auparavant sans problème, mais clairement quelque chose a été réinitialisé pendant l'interruption.
J'ai suivi ce guide (juste les parties qui ne concernent pas S3, je ne suis pas sur l'infrastructure Amazon) à l'origine et tout a fonctionné comme prévu.
Je suis très novice en tant que SysAdmin et je ne sais pas quoi essayer, comment aborderiez-vous ce problème de diagnostic? La trace de la pile que je reçois est la suivante;
INFO: Déploiement de l'archive de l'application web myapp-1.1.war
2010-05-26 22:07:22,221 [main] ERREUR context.ContextLoader - L'initialisation du contexte a échoué
org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'messageSource': L'initialisation du bean a échoué ; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'transactionManager': Impossible de résoudre la référence au bean 'sessionFactory' lors du réglage de la propriété du bean 'sessionFactory' ; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'sessionFactory': Impossible de résoudre la référence au bean 'hibernateProperties' lors du réglage de la propriété du bean 'hibernateProperties' ; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'hibernateProperties': Impossible de résoudre la référence au bean 'dialectDetector' lors du réglage de la propriété du bean 'properties' avec la clé [hibernate.dialect] ; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'dialectDetector': L'invocation de la méthode d'initialisation a échoué ; l'exception imbriquée est org.springframework.jdbc.support.MetaDataAccessException: Impossible d'obtenir une connexion pour extraire les métadonnées ; l'exception imbriquée est org.springframework.jdbc.CannotGetJdbcConnectionException: Impossible d'obtenir une connexion JDBC ; l'exception imbriquée est org.apache.commons.dbcp.SQLNestedException: Impossible de créer PoolableConnectionFactory (Échec de la liaison de communication
Le dernier paquet a été envoyé avec succès au serveur il y a 0 millisecondes. Le pilote n'a reçu aucun paquet du serveur.)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.doCreateBean(ReloadAwareAutowireCapableBeanFactory.java:129)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.context.support.AbstractApplicationContext.initMessageSource(AbstractApplicationContext.java:714)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:404)
at org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext.refresh(GrailsWebApplicationContext.java:153)
...
Je reçois cette erreur pour plusieurs 'beans'.
Si je tape mysql à mon invite de commandes, je peux facilement me connecter avec les mêmes informations d'identification que mon application grails qui utilise GORM et Hibernate pour persister les objets dans la base de données.
Je n'ai peut-être pas donné suffisamment d'informations pour commencer, mais je suis vraiment intéressé à apprendre et je les fournirai certainement si on me le demande, je ne sais juste pas par où commencer sur celui-ci.
MISE À JOUR : Je peux me connecter à mysql en exécutant le binaire en ligne de commande. J'ai également exécuté mysql sur tcp et n'ai pas pu me connecter, cela éclaire-t-il d'une quelconque lumière sur le problème?
root@88:~# mysql -u grails --protocol=tcp -p
Entrez votre mot de passe :
ERROR 2003 (HY000): Impossible de se connecter au serveur MySQL sur 'localhost' (110)
J'ai bind-address à 127.0.0.1 comme discuté précédemment, donc peut-être n'est-ce pas surprenant que cela ne fonctionne pas. Y a-t-il quelque chose que je dois vérifier dans mon fichier hosts?
Merci,
Gav
1 votes
Il s'est avéré que mon interface lo était désactivée. La commande ifconfig lo up l'a corrigée.