Pages enfant
  • Configuration de la Base de Données MariaDB

Configuration de la Base de Données MariaDB

uPortal est configuré pour utiliser une base de données HSQL par défaut.

Cette configuration de base de données ne convient pas aux déploiements de production mais est mieux adaptée à des fins de test.

uPortal prend en charge un certain nombre de bases de données de production et vous pouvez configurer la base de données MariaDB.

Étape 1 : Paramétrage du server MariaDB

Editer le fichier /etc/mysql/mariadb.conf.d/60-server.cnf. (ici pour Debian 9) Dans la partie mysqld ajouter les éléments suivant :

default-storage-engine=INNODB
lower_case_table_names=1
innodb-large-prefix=1
innodb_file_format=Barracuda
innodb_file_format_check=1
innodb_file_format_max=Barracuda
innodb_file_per_table=1
innodb_strict_mode=ON

innodb_buffer_pool_size=2G
innodb_data_home_dir=/var/lib/mysql/
innodb_data_file_path=ibdata1:100M:autoextend
innodb_flush_log_at_trx_commit=1
innodb_log_file_size=256M
innodb_log_buffer_size=64M

Étape 2 : Configurer l'utilisateur et la base de donnée

mysql -uroot -p

MariaDB [(none)]> create database uportal CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> create database portlets CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'uportal'@'localhost' IDENTIFIED BY 'uportal';
GRANT ALL PRIVILEGES ON uportal.* TO 'portail'@'localhost';
GRANT ALL PRIVILEGES ON portlets.* TO 'portail'@'localhost';

Étape 3 : Configurer Uportal

Éditer uPortal-start/gradle.properties

mysqldbVersion=5.1.45

Éditer uPortal-start/overlays/build.gradle

dependencies {
        /*
 * Add additional JDBC driver jars to the 'jdbc' configuration below;
 * do not remove the hsqldb driver jar that is already listed.
 *
 jdbc "org.hsqldb:hsqldb:${hsqldbVersion}"
 */
        jdbc "mysql:mysql-connector-java:${mysqldbVersion}"
        
        /*
 * These are nearly the same uPortal dependencies declared by uPortal-webapp;
 * perhaps we should create a uPortal-all module to bundle them all as transitives.
 */

Éditer uPortal-start/etc/portal/global.properties (il est possible de distinguer une base donnée pour Uportal et une autre pour les portlets)

Dans la partie Database Connection

hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost/portlets
hibernate.connection.username=uportal
hibernate.connection.password=uportal
hibernate.connection.validationQuery=select 1
hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

Éditer uPortal-start/etc/portal/uPortal.properties

hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost/uportal
hibernate.connection.username=uportal
hibernate.connection.password=uportal
hibernate.connection.validationQuery=select 1
hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

Étape 4 : Initialisation de la Base de Donnée

./gradlew dataInit

Étape 5 : Déploiement de uPortal

./gradlew tomcatDeploy
  • Aucune étiquette

Commentaire

  1. Bonjour,

    Si ça peut aider (ou éviter de perdre du temps), je suis sous debian 11 et une version 10.5.21  de mariadb, il faut commenter les ligne suivantes 60-server.cnf dans le fichier de conf  la section mysqld :

    [mysqld]                                                                                                                                                                                                          
    default-storage-engine=INNODB                                                                                                                                                                                     
    lower_case_table_names=1                                                                                                                                                                                          
    innodb-large-prefix=1                                                                                                                                                                                             
    #innodb_file_format=Barracuda                                                                                                                                                                                     
    #innodb_file_format_check=1                                                                                                                                                                                       
    #innodb_file_format_max=Barracuda                                                                                                                                                                                 
    innodb_file_per_table=1                                                                                                                                                                                           
    innodb_strict_mode=ON                                                                                                                                                                                             
                                                                                                                                                                                                                     
    innodb_buffer_pool_size=2G                                                                                                                                                                                        
    innodb_data_home_dir=/var/lib/mysql/                                                                                                                                                                              
    #innodb_data_file_path=ibdata1:100M:autoextend                                                                                                                                                                    
    innodb_flush_log_at_trx_commit=1                                                                                                                                                                                  
    innodb_log_file_size=256M                                                                                                                                                                                         
    innodb_log_buffer_size=64M                                                                                                                                                                                        
    innodb_default_row_format=dynamic


    On utilise bien un connecteur mysql avec un serveur mariaDb, j'ai aussi essayé avec un connecteur mariaDb et ça ne fonctionne pas. Par ailler dans les fichier global.properties et uPortal.properties j'utilise le dialect ci-dessous :

    hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

    Cf. https://uportal-project.github.io/manuals/fr/uportal5-manual/database/mariadb.html