La plupart des gens exécutent un seul serveur MySQL sur une machine désignée, mais il existe des situations où l'exécution de plusieurs serveurs est bénéfique : vous pouvez tester de nouvelles versions du serveur avec le serveur de production en cours d'exécution. Dans ce cas, un autre serveur sera exécuté.
Le système d'exploitation impose généralement une limite globale de processus sur le nombre de descripteurs pour les fichiers ouverts. Si votre système a des difficultés à augmenter la limite, exécuter plusieurs serveurs est une solution de contournement (par exemple, augmenter la limite peut nécessiter une recompilation du noyau, et si la machine se trouve en dehors de votre juridiction, vous ne pourrez peut-être pas le faire pour le moment). Dans ce scénario, vous pouvez exécuter plusieurs instances du même serveur.
Les services Internet fournissent souvent aux clients leur propre installation MySQL, qui nécessite un serveur distinct. Dans ce cas, vous pouvez exécuter plusieurs instances du même serveur ou des serveurs différents si différents clients nécessitent différentes versions de MySQL.
Bien entendu, exécuter plusieurs serveurs simultanément est plus compliqué que d’en exécuter un seul. Si vous envisagez d'installer plusieurs versions, vous ne pouvez pas toutes les installer au même emplacement. Lorsqu'un serveur est en cours d'exécution, certains paramètres doivent être uniques pour chaque serveur. Certains de ces paramètres incluent l'emplacement d'installation du serveur : le chemin d'accès au répertoire de données, le port TCP/IP et le chemin d'accès du socket de domaine UNIX, ainsi que le compte UNIX utilisé pour exécuter plusieurs serveurs (s'ils ne sont pas tous exécutés sous le même serveur de compte). Si vous décidez d'exécuter plusieurs serveurs, vous devez conserver une bonne description des paramètres que vous utilisez afin de ne pas perdre la trace de vos exécutions.
Configurer et installer plusieurs serveurs
Si vous envisagez d'exécuter différentes versions du serveur plutôt que plusieurs instances du même serveur, vous devez les installer à des emplacements différents. Si vous installez des packages de distribution binaires (et non RPM), ils seront installés dans le nom du répertoire contenant le numéro de version. Si vous effectuez une installation à partir d'une distribution source, le moyen le plus simple de séparer les différentes distributions est d'utiliser l'option --with-prefix lors de l'exécution de configure lors de l'installation de chaque version de MySQL. Cela entraînera une installation dans un répertoire séparé pouvant être lié au numéro de version de la distribution. Par exemple, vous pouvez configurer un package de distribution MySQL comme suit, où version est le numéro de version MySQL :
% ./configure ..with-prefix=/usr/local/mysql-version
L'option with-prefix déterminera également le répertoire de données unique du serveur. Vous pouvez ajouter des options pour configurer d'autres valeurs spécifiques au serveur, telles que le port TCP/IP et le chemin d'accès du socket (--with-tcp-port et --with-unix-socket).
Si vous prévoyez d'exécuter plusieurs instances du même serveur, toutes les options spécifiques au serveur devront être spécifiées au moment de l'exécution.
Processus de démarrage de plusieurs serveurs
Démarrer plusieurs serveurs est plus compliqué que d'utiliser un seul serveur car safe_mysqld et mysql.server fonctionnent bien sur un seul serveur. L'auteur vous recommande d'étudier attentivement safe_mysqld et de l'utiliser comme base du processus de démarrage, à moins que vous n'utilisiez une copie plus granulaire modifiée selon vos besoins.
Un problème à résoudre est de savoir comment spécifier les options dans le fichier d'options. Avec plusieurs serveurs, vous ne pouvez pas utiliser /etc/my.cnf pour les paramètres qui changent sur l'ensemble du serveur, utilisez uniquement ce fichier pour les paramètres identiques pour tous les serveurs. Si chaque serveur possède un emplacement de répertoire de données différent, vous pouvez spécifier des paramètres spécifiques au serveur dans le fichier my.cnf pour le répertoire de données de chaque serveur. En d'autres termes, utilisez /etc/my.cnf pour les paramètres utilisés par tous les serveurs et DATA DIR/my.cnf pour les paramètres spécifiques au serveur, où DATADIR change pour chaque serveur.
Une autre façon de spécifier les options du serveur consiste à utiliser - - defa ul ts - file = path_name comme première option sur la ligne de commande pour indiquer au serveur de lire les options du fichier spécifié par path_name. De cette façon, les options du serveur dans ce fichier peuvent être placées de manière unique sur ce serveur, puis indiquer au serveur de lire le fichier au démarrage. Notez que si cette option est spécifiée, aucun des fichiers d'options habituels (tels que /etc/my.cnf) ne sera utilisé.