Depuis MySQL 5.0.4, il est possible de surcharger la configuration de MySQL en incluant le fichier de configuration de son choix.
Au niveau des distributions Linux, on se retrouve face à plusieurs situations (je ne sais pas ce qu’il en est pour Solaris / Windows) :
Note
Des fichiers exemples de configuration sont disponibles en général dans /usr/share/mysql/
Dans le cas 1, en créant son propre fichier my.cnf dans /etc/, on surcharge donc la configuration par défaut. Lors des montées de version de MySQL il y a a priori peu de risque que votre fichier soit effacé (sauf si la distribution se met à en fournir un par défaut, ce qui n’est jamais improbable).
Dans le cas 2, lors d’une montée de version, si vous avez modifié le fichier fourni initialement par la distribution et suivant la subtilité du gestionnaire de paquet, vos modifications peuvent potentiellement être perdues.
La solution consiste donc à externaliser vos modifications dans une zone qui ne sera jamais impactée par le package standard de MySQL.
MySQL vous offre 2 options (à ajouter en fin de fichier /etc/my.cnf) :
!include /home/mysql/conf/myopt.cnf
!includedir /home/mysql/conf
Il n’est pas précisé de règle pour l’ordre de chargement, je présuppose que cela se fait par ordre alphabétique (comme Apache)
Quelques règles :
Ex :
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
key_buffer = 100M
myisam_sort_buffer_size = 64M
On peut donc imaginer utiliser !includedir /home/mysql/conf et que ce répertoire contienne n fichiers :
Ref : http://dev.mysql.com/doc/refman/5.0/en/option-files.html