ODK aggregate on tomcat8 don't work

Hi,
I download Odk aggregate 2.0.5 windows version. When I deploy it in tomcat, it don't work.

When I look my log file, it's like there is a sql error like a wrong use of datetime type in the sql query.

INFOS: Attempting: CREATE TABLE aggregate_2._task_lock ( _URI VARCHAR(80) CHARACTER SET utf8 NOT NULL , _CREATOR_URI_USER VARCHAR(80) CHARACTER SET utf8 NOT NULL , _CREATION_DATE DATETIME(6) NOT NULL , _LAST_UPDATE_URI_USER VARCHAR(80) CHARACTER SET utf8 NULL , _LAST_UPDATE_DATE DATETIME(6) NOT NULL , FORM_ID VARCHAR(4096 ) CHARACTER SET utf8 NOT NULL , TASK_TYPE VARCHAR(80 ) CHARACTER SET utf8 NOT NULL , EXPIRATION_DATETIME DATETIME(6) NULL , INDEX(_URI ) USING HASH , INDEX(_LAST_UPDATE_DATE ) )
janv. 21, 2020 12:07:59 PM org.opendatakit.common.persistence.engine.mysql.DatastoreImpl assertRelation
AVERTISSEMENT: Failure: _task_lock exception: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [CREATE TABLE aggregate_2._task_lock ( _URI VARCHAR(80) CHARACTER SET utf8 NOT NULL , _CREATOR_URI_USER VARCHAR(80) CHARACTER SET utf8 NOT NULL , _CREATION_DATE DATETIME(6) NOT NULL , _LAST_UPDATE_URI_USER VARCHAR(80) CHARACTER SET utf8 NULL , _LAST_UPDATE_DATE DATETIME(6) NOT NULL , FORM_ID VARCHAR(4096 ) CHARACTER SET utf8 NOT NULL , TASK_TYPE VARCHAR(80 ) CHARACTER SET utf8 NOT NULL , EXPIRATION_DATETIME DATETIME(6) NULL , INDEX(_URI ) USING HASH , INDEX(_LAST_UPDATE_DATE ) ) ]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL , _LAST_UPDATE_URI_USER VARCHAR(80) CHARACTER SET utf8 NULL , _L' at line 1 org.opendatakit.common.persistence.exception.ODKDatastoreException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [CREATE TABLE aggregate_2._task_lock(_URIVARCHAR(80) CHARACTER SET utf8 NOT NULL ,_CREATOR_URI_USERVARCHAR(80) CHARACTER SET utf8 NOT NULL ,_CREATION_DATEDATETIME(6) NOT NULL ,_LAST_UPDATE_URI_USERVARCHAR(80) CHARACTER SET utf8 NULL ,_LAST_UPDATE_DATEDATETIME(6) NOT NULL ,FORM_IDVARCHAR(4096 ) CHARACTER SET utf8 NOT NULL ,TASK_TYPEVARCHAR(80 ) CHARACTER SET utf8 NOT NULL ,EXPIRATION_DATETIME DATETIME(6) NULL , INDEX(_URI ) USING HASH , INDEX(_LAST_UPDATE_DATE) ) ]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL ,_LAST_UPDATE_URI_USERVARCHAR(80) CHARACTER SET utf8 NULL ,_L' at line 1
at org.opendatakit.common.persistence.engine.mysql.DatastoreImpl.assertRelation(DatastoreImpl.java:530)
at org.opendatakit.common.persistence.engine.mysql.TaskLockImpl$TaskLockTable.assertRelation(TaskLockImpl.java:478)
at org.opendatakit.common.persistence.engine.mysql.TaskLockImpl.obtainLock(TaskLockImpl.java:382)
at org.opendatakit.common.security.spring.RoleHierarchyImpl.afterPropertiesSet(RoleHierarchyImpl.java:229)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:754)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5278)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [CREATE TABLE aggregate_2._task_lock ( _URI VARCHAR(80) CHARACTER SET utf8 NOT NULL , _CREATOR_URI_USER VARCHAR(80) CHARACTER SET utf8 NOT NULL , _CREATION_DATE DATETIME(6) NOT NULL , _LAST_UPDATE_URI_USER VARCHAR(80) CHARACTER SET utf8 NULL , _LAST_UPDATE_DATE DATETIME(6) NOT NULL , FORM_ID VARCHAR(4096 ) CHARACTER SET utf8 NOT NULL , TASK_TYPE VARCHAR(80 ) CHARACTER SET utf8 NOT NULL , EXPIRATION_DATETIME DATETIME(6) NULL , INDEX(_URI ) USING HASH , INDEX(_LAST_UPDATE_DATE ) ) ]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL , _LAST_UPDATE_URI_USER VARCHAR(80) CHARACTER SET utf8 NULL , `_L' at line 1
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:419)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:443)
at org.opendatakit.common.persistence.engine.mysql.DatastoreImpl.assertRelation(DatastoreImpl.java:516)
... 30 more

How can I resolve the problem ?

My guess is that you are using an unsupported version of MySQL. What version are you using?

More at https://docs.opendatakit.org/aggregate-deployment-planning/#component-versions

I use the 5.5.38 version

Upgrade to MySQL 5.7.

Thank you . It works.