Projet Socle ENT
Pages enfant
  • Particularités MySQL (esup 4)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Avertissement
titleImportant

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 :

...

La
Avertissement
titleCas 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

Avertissement
titleQue se passe-t-il sinon ?

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

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

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 n'est pas assez sûr). Pour cela, il faut copier-coller my-huge.ini en my.ini et ajouter l'instruction suivante :

...

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
titleRéférences

https://wiki.jasig.org/display/UPM40/MySQL