{"partition": "head_middle", "source_domain": "www.dbnewz.com", "digest": "sha1:YWYQQQ7ZKR7CWHQ4NLFAQLII6UGUK4EN", "path": "/lustre/fsn1/projects/rech/qgz/uzq54wg/processed_redpajama/base_processing/output/fr/2014-15/000_00004.parquet"}
dbnewz
le blog français sur les SGBD – MySQL, Oracle et plus…
« Meetup Viadeo/LeMug.fr le 16 novembre
Comprendre son fichier de configuration – 2ème partie »
Comprendre son fichier de configuration – 1ère partie
16 décembre 2011 par stephane
Des outils tels que mysql tuning primer ou mysqltuner proposent de vous aider à configurer correctement votre serveur MySQL. Il est vrai qu’il est facile de se perdre dans la profusion d’options disponibles. Pourtant les recommendations de ces outils sont bien souvent complètement absurdes ! Il est bien plus fiable de connaître les grandes lignes de la configuration du serveur pour obtenir rapidement un paramétrage correct. Je vous propose dans cette série d’articles de faire le tour des principales variables à regarder.
bind-address
Cette variable permet les connexions TCP à l’adresse IP indiquée. C’est la 1ère variable à regarder si vous constatez un problème d’accès et que les droits de l’utilisateur sont corrects.
En général, on utilise cette variable de 2 manières :
- bind-address = 127.0.0.1 pour n’autoriser que les connexions TCP en local
- en commentant la variable pour n’avoir aucune restriction
A noter qu’il n’est (malheureusement) pas possible d’indiquer une liste d’adresses IP pour restreindre les connexions TCP à plusieurs hôtes, dans ce cas, il faut passer par des règles de firewalls.
skip-name-resolve
Lorsqu’un client se connecte au serveur, celui-ci fait 2 requêtes DNS. Le DNS pouvant être lent, c’est souvent une bonne idée d’utiliser cette variable pour désactiver complètement les requêtes DNS. Seule conséquence contraignante : le champ host des utilisateurs ne peut plus être un nom de domaine, mais uniquement une adresse IP (vous pouvez continuer à utiliser les wildcards, par exemple 192.168.%).
max_connections
C’est la variable qui contrôle le nombre de connexions simultanées au serveur. Si vous voyez régulièrement des erreurs ‘Too many connections‘ lorsque des clients essaient de se connecter, il s’agit de la variable à regarder, la valeur par défaut (100 ou 150 selon les versions) pouvant être trop faible selon le type d’applications.
A noter qu’il n’est pas conseillé de mettre systématiquement cette variable à un nombre très élevé, puisque plus le nombre de connexions simultanées est élevé, plus le serveur risque d’être sujet à des problèmes de contentions internes et risque d’être peu performant. Parfois un trop grand nombre de connexions simultanées cache un problème de conception dans l’application.
A noter également que même quand le nombre de connexions ouvertes a atteint max_connections, il est toujours possible de se connecter au serveur avec un utilisateur qui dispose du droit SUPER. Le but est de pouvoir faire des SHOW PROCESSLIST pour comprendre ce qu’il se passe (et éventuellement quelques KILL bien sentis…).
datadir
Il s’agit de l’emplacement du répertoire de données. Vous n’avez pas besoin de le changer si votre volumétrie de données reste dans la gamme des centaines de Mo ou moins, mais dès que vous prévoyez d’atteindre des tailles conséquentes, il est plus que conseillé d’indiquer un répertoire se trouvant dans une partition où l’espace disque est suffisant.
old_passwords
Avant la version 4.1, MySQL utilisait une méthode de cryptage des mots de passe très faible, toujours disponible sur les versions actuelles quand on active ce fameux paramètre (old_passwords = 1).
En général, on trouve ce fameux paramètre sur de vielles applications « parce qu’on ne va pas s’amuser