title: Alfresco tomcat service does not communicate with MySQL
body: <p>I am currently upgrading a Windows 2003 Server to a 2012R2. 
  I had to merge several components including : </p>
  
  <p>-Joomla</p>
  
  <p>-VtigerCRM</p>
  
  <p>-Alfresco</p>
  
  <p>The two first components did just fine (or almost but that's not the point). However, I am having a hard time configuring Alfresco. </p>
  
  <p>Alfresco runs two Windows services : alfrescoTomcat and alfrescoOpenoffice</p>
  
  <p>My server returns a 500 HTTP Error when booting up those services. Which is explained by the following tomcat logs : </p>
  
  <pre><code>log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.
  Jul 17, 2017 8:14:50 AM org.apache.coyote.http11.Http11Protocol init
  INFO: Initializing Coyote HTTP/1.1 on http-8188
  Jul 17, 2017 8:14:51 AM org.apache.coyote.http11.Http11Protocol init
  INFO: Initializing Coyote HTTP/1.1 on http-8553
  Jul 17, 2017 8:14:51 AM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 2648 ms
  Jul 17, 2017 8:14:51 AM org.apache.catalina.core.StandardService start
  INFO: Starting service Catalina
  Jul 17, 2017 8:14:51 AM org.apache.catalina.core.StandardEngine start
  INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
  Jul 17, 2017 8:14:51 AM org.apache.catalina.startup.HostConfig deployDescriptor
  INFO: Deploying configuration descriptor alfresco.xml
  Jul 17, 2017 8:14:53 AM org.apache.catalina.core.StandardContext addApplicationListener
  INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
  Jul 17, 2017 8:14:55 AM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  08:15:04,109  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from class path resource [alfresco/repository.properties]
  08:15:04,117  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from class path resource [alfresco/domain/transaction.properties]
  08:15:04,120  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from file [C:\ProgramFiles\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\module\org_alfresco_module_dod5015\alfresco-global.properties]
  08:15:04,121  INFO  [alfresco.config.JndiPropertiesFactoryBean] Loading properties file from file [C:\ProgramFiles\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\module\org_alfresco_module_wcmquickstart\alfresco-global.properties]
  08:15:04,198  INFO  [alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
  08:15:08,987  WARN  [hibernate.cfg.SettingsFactory] Could not obtain connection metadata
  org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'alfresco'@'localhost' (using password: YES))
      at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
      at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
      at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
      at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
      at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
      at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
      at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:512)
      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:189)
      at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
      at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1305)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
      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:189)
      at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
      at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1305)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
      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:189)
      at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
      at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1305)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
      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:189)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:557)
      at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:842)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:416)
      at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)
      at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
      at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
      at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
      at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
      at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
      at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
      at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
      at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      at org.apache.catalina.core.StandardService.start(StandardService.java:519)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
  Caused by: java.sql.SQLException: Access denied for user 'alfresco'@'localhost' (using password: YES)
      at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
      at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:771)
      at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3649)
      at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1176)
      at com.mysql.jdbc.Connection.createNewIO(Connection.java:2558)
      at com.mysql.jdbc.Connection.&lt;init&gt;(Connection.java:1485)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
      at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
      at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
      at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
      at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
      ... 77 more
  </code></pre>
  
  <p>And it goes on and on for hundreds of lines. This is the very first error. </p>
  
  <p>My main concern is about this : </p>
  
  <pre><code> 08:15:08,987  WARN  [hibernate.cfg.SettingsFactory] Could not obtain connection metadata
      org.apache.commons.dbcp.SQLNestedException: Cannot create 
      PoolableConnectionFactory (Access denied for user 'alfresco'@'localhost' 
      (using password: YES))
  </code></pre>
  
  <p>I checked the alfresco-global.properties file, which specifies the correct port, database name and credentials.</p>
  
  <p>The database can be accessed with these credentials manualy via Command Prompt, the base and tables exists, 'alfresco'@'localhost' has every privileges on alfresco.* . </p>
  
  <p>Here is a TCPView : 
  <a href="https://i.stack.imgur.com/KNRii.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KNRii.png" alt="TCPView"></a></p>
  
  <p>My lead is that tomcat can not communicate with MySQL, but I might be wrong. 
  Does anyone has any idea on what may be happening ? What am I missing ?
  I tried a pretty fair amount of solutions found on the Internet, none of them worked so far. That's why I come to you. </p>
  
  <p>Thanks for your time, I'll post further information as I discover them or after your requests.</p>
  
  <p>Kind regards, </p>