Pages enfant
  • Particularités MySQL (esup 4)

Configuration

Voici un exemple de fichier de configuration, mais les modifications seront à apporter au fichier my.ini fourni avec package MySQL téléchargé.

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 :

lower_case_table_names = 1 

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 :

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

L'erreur "Specified key was too long; max key length is 767 bytes"

Dans le fichier my.cnf / my.ini, ajouter :

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 :

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 :

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 :

show variables like 'char%'; show variables like "%collation%";

La résultat devrait être similaire à celui-ci :

+--------------------------+---------------------------------------------+
| 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)

Performances

Les performances seront meilleures si les réglages suivants sont effectués dans le fichier my.ini :

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

 

 

  • Aucune étiquette