Lavagna MySql 8

De EjnTricks

Cet article présente les actions nécessaire pour que Lavagna, en version 1.1.13 fonctionne avec la base de données MySql.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Analyse

Suite à la mise à jour de Ubuntu en 19.10, la base de données MySql est mise jour en version 8.0.18.

Or lors du démarrage de Lavagna, sous Tomcat, un message d'erreur est présent dans les traces.

SQL State  : HY000
Error Code : 1193
Message    : Unknown system variable 'query_cache_size'

        at org.flywaydb.core.internal.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:57)
        at org.flywaydb.core.Flyway.execute(Flyway.java:1418)
        at org.flywaydb.core.Flyway.migrate(Flyway.java:971)
        at io.lavagna.service.DatabaseMigrator.doMigration(DatabaseMigrator.java:44)
        at io.lavagna.service.DatabaseMigrator.<init>(DatabaseMigrator.java:29)
        at io.lavagna.config.DataSourceConfig.migrator(DataSourceConfig.java:115)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
        ... 29 more
Caused by: java.sql.SQLException: Unknown system variable 'query_cache_size'

Or la variable a été supprimé depuis la version 8.0.3 comme indiqué dans la documentation officielle de MySql : https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html


Update icon.png Correctif

Afin de corriger cette anomalie, il suffit de modifier le driver MySql embarqué dans la distribution Lavagna. D'après la fichier pom.xml, c'est la version 5.1.41 qui est utilisée et il existe une version 5.1.48 disponible dans les dépôts Maven.

Il faut donc télécharger celle-ci et l'injecter dans l'application. Dans le cadre de cette installation, l'application tourne sous Tomat8, et il n'est alors plus possible d'utiliser le paquet war, qui serait redéployer à chaque démarrage.

L'installation s'effectue donc de la façons suivante.

#sudo systemctl stop tomcat8
#sudo rm /var/lib/tomcat8/webapps/lavagna/WEB-INF/lib/mysql-connector-java-5.1.41.jar
#sudo wget -O /var/lib/tomcat8/webapps/lavagna/WEB-INF/lib/mysql-connector-java-5.1.48.jar 
https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/5.1.48/mysql-connector-java-5.1.48.jar
#sudo chmod 640 /var/lib/tomcat8/webapps/lavagna/WEB-INF/lib/mysql-connector-java-5.1.48.jar
#sudo chown tomcat8:tomcat8 /var/lib/tomcat8/webapps/lavagna/WEB-INF/lib/mysql-connector-java-5.1.48.jar
#sudo systemctl start tomcat8