Afin de paramétrer au mieux le moteur de bases de données MySQL, il est possible de modifier manuellement le fichier my.cnf situé dans le répertoire où est installé MySQL (généralement c:\mysql) ou bien en utilisant les outils d'administrations de MySQL ; cette dernière solution est bien préférable et c'est elle que nous allons décrire en premier.
L'outil d'administration MySQL Workbench fourni par MySQL peut être téléchargé gratuitement sur le site mysql.com (cliquer sur le lien pour la proposition "Windows (x86)"). Il vous sera proposé de vous "enregistrer", mais vous pouvez sauter cette étape en choisissant le lien "No thanks, just take me to the downloads!".
L'outil MySQL administrator, plus ancien mais plus léger peut être téléchargé ici.
Après installation, vous pourrez lancer MySQL Administrator en allant dans le menu démarrer puis Tous les programmes puis MySQL puis MySQL Administrator.
L'outil de configuration se lance sur une fenêtre qui permet de désigner le moteur MySQL à administrer. En utilisation monoposte, ou en réseau, si l'outil est lancé sur le serveur, vous devez renseigner les paramètres en vous inspirant de la copie d'écran ci-dessous :
Le paramétrage s'effectue dans la section Startup Variables.
Le paramètre le plus important se trouve dans l'onglet Advanced Networking. Il s'agit de la variable Max. packet size.
Cette variable définit la taille maximale des paquets de données que MySQL accepte de recevoir ou d'émettre. Lors de l'installation de MySQL, elle est fixée est fixée à 1 Mo, ce qui veut dire que si on tente de demander à MySQL de stocker un ensemble de données et que la requête correspondante dépasse 1 Mo, cette demande n'est pas traitée par le moteur.
L'existence de ce paramètre protège le moteur des attaques par "buffer overflow" (envoit d'une requête dont le volume dépasse la taille prévue par le moteur afin de le rendre instable et vulnérable à une prise en main par le pirate).
Une valeur maximale de 1 Mo peut s'avèrer insuffisante pour Episodus en cas de récupération d'un gros fichier patient ; il est vivement conseillé de la fixer à 16 Mo, comme montré dans l'écran ci-dessous.
Si votre serveur vous semble lent lors de la première connexion, il se peut que la variable Disable name resolving soit en cause.
Lorsqu'un client se connecte au moteur MySQL, ce dernier n'en connait initialement que l'adresse IP (une série de 4 chiffres qui identifie la machine de façon unique sur le réseau). Mais le comportement par défaut de MySQL est, lors de la première connexion d'un client, de chercher à trouver son nom d'ordinateur (par exemple "poste secrétariat"). Ce processus, qui nécessite d'interroger un composant du réseau appelé DNS peut s'avérer très long sur certains réseaux et il est alors préférable de paramétrer MySQL pour qu'il se contente de connaitre l'adresse IP de ses clients.
La désactivation de la recherche du nom des clients se fait dans la même page que le paramétrage du Max. packet size décrit ci dessus. Il suffit de cocher la case Disable name resolving comme le montre la copie d'écran ci-dessous.
Il est possible de fixer manuellement les paramètres décrits ci-dessus en modifiant le fichier my.cnf (avec Bloc-notes, par exemple). Il faut alors être particulièrement attentif à ne pas faire de faute de frappe. Si vous le pouvez, faites des copier-coller à partir de ce texte.
Pour modifier le paramètre Max. packet size, insérez les lignes ci-dessous (les lignes qui commencent par un '#' sont des commentaires, elles sont donc optionnelles... mais bien précieuses) :
#Max packetlength to send/receive from to server. max_allowed_packet=16M
Pour modifier le paramètre Disable name resolving, insérez les lignes ci-dessous :
#Don't resolve hostnames. All hostnames are IP's or 'localhost'. skip-name-resolve
Le fichier de configuration est pris en compte au démarrage de MySQL. Il est donc nécessaire, pour que vos modifications manuelles soient effectives, d'arrêter, puis de relancer le service MySQL. Vous pouvez réaliser cette opération de deux façons :
Sous Linux, les noms de fichier sont sensibles à la casse, contrairement à Windows. C'est également le cas pour le nom des tables sous MySQL. Il est possible de modifier (ou de créer) la variable lower_case_table_names dans le fichier my.ini comme indiqué dans le tableau ci-dessous.
Value | Meaning |
0 | Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement.
Name comparisons are case sensitive. Note that if you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive file system and access MyISAM tablenames using different lettercases, index corruption may result. |
1 | Table names are stored in lowercase on disk and name comparisons are not
case sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases. |
2 | Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case
sensitive. This works only on file systems that are not case sensitive! InnoDB table names are stored in lowercase, as for lower_case_table_names=1. |