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
|
Remarque |
---|
title | Cas des tables déjà créées (Unix) |
---|
|
Si vous avez déjà créé la base de données mais que vous souhaitez toutefois modifier ce paramètre, alors vous devez d'abord changer la casse (minuscule) des noms de la base de données et des tables avant de redémarrer mysqld avec la nouvelle configuration. http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html |
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
|
Stockage MySQL
Il faut changer le moteur de stockage par défaut (MyISAM ne 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
|
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) |
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
|