| Avertissementinfo | |||
|---|---|---|---|
| |||
Voici un exemple de fichier de configuration, mais les modifications seront à apporter au fichier my.ini fourni avec package MySQL téléchargéMySQL n'est pas recommandé. Les explications ci-dessous sont très importantes pour utiliser ce SGBD. |
Prérequis MySQL
Casse des tables
La base doit être en mode "insensible à la casse" (la casse des requêtes SQL de Uportal n'est pas garantie). Dans le fichier my.cnf / my.ini, ajouter :
| Bloc de code |
|---|
lower_case_table_names = 1
|
...
Sans ce réglage, la commande ant initportal sera en échec :
| Bloc de code |
|---|
crn-import:
[java] ERROR Failed to import Structure from: structure/DLM_Tabs_and_columns-1.structure due to exception: org.danann.cernunnos.ManagedException: The Cernunnos Runtime encountered an error:...
[java] Caused by: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar ...
[java] Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table '.......' doesn't exist
|
...
Dans le fichier my.cnf / my.ini, ajouter :
| Bloc de code |
|---|
innodb_file_format=barracuda
innodb_file_per_table=true
innodb_large_prefix=true
|
...
Il faut changer le moteur de stockage par défaut (MyISAM n'est pas assez sûrne gère pas les trasactions). Pour cela, il faut copier-coller my-huge.ini en my.ini et ajouter l'instruction suivante :
| Bloc de code |
|---|
default-storage-engine=innodb
|
Mise à jour de la propriété "maxThreads"
Dans le fichier "uportal-war/src/main/resources/properties/portal.properties", modifier la valeur de la clé "org.jasig.portal.io.threadPool.maxThreads" :
Encodage des caractères
L'encodage recommandé est l'UTF-8. Afin de le définir par défaut, il faut ajouter les lignes suivantes dans la section [mysqld] de my.ini :
| Bloc de code |
|---|
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8 |
Il faut redémarrer MySQL pour prendre en compte la nouvelle configuration. L'encodage des caractères peut être vérifié à l'aide de la requête suivante :
| Bloc de code |
|---|
show variables like 'char%'; show variables like "%collation%"; |
La résultat devrait être similaire à celui-ci :
| Bloc de code | ||
|---|---|---|
| ||
+--------------------------+---------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\ESUP\mysql-5.5.29-winx64\share\charsets\ |
+--------------------------+---------------------------------------------+
8 rows in set (0.00 sec)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec) | ||
| Bloc de code | ||
org.jasig.portal.io.threadPool.maxThreads=1
|
Performances
Les performances seront meilleures si les réglages suivants sont effectués dans le fichier my.ini :
| Bloc de code |
|---|
max_connections = 1500
table_cache = 512
query_cache_size = 128M
set-variable = innodb_buffer_pool_size=128M
set-variable = innodb_log_file_size=256M
set-variable = innodb_additional_mem_pool_size=20M
set-variable = innodb_log_buffer_size=4M
innodb_flush_log_at_trx_commit=1
|
Deadlocks
TODO : faire cette partie plus en détails : Cf. le wiki de JASIG
Deadlock troubleshooting
One thing that will most likely come up in working with uPortal and MySQL (or any database for that matter) is the issue of deadlocks - when a record is needed to be accessed by two different queries at the same time.
The MySQL site has an EXCELLENT chapter on dealing with these. Overall, the on-line reference guide for MySQL is an EXCELLENT resource.
| Info | ||
|---|---|---|
| ||
https://wiki.jasig.org/display/UPM40/MySQL |