Le plus simple pour utiliser plusieurs serveurs sous Unix, est de le compiler avec différents ports TCP/IP et sockets pour que chacun puisse utiliser une interface réseau différente. De plus, en compilant le serveur dans différents dossier de base, cela conduit automatiquement à la configuration de différents dossiers de données, fichiers de logs, et PID pour chaque serveur.
Supposons que le serveur existant est configuré avec le numéro
de port (3306) et le fichier de socket par défaut
(/tmp/mysql.sock
). Pour configurer un
nouveau serveur en ayant des paramètres opératoires
différents, vous pouvez utiliser le script de configuration
configure
avec les options suivantes :
shell>./configure --with-tcp-port=port_number \
--with-unix-socket-path=file_name \
--prefix=/usr/local/mysql-4.0.17
Ici, port_number
et
file_name
doivent être différents des
valeurs par défaut de numéro de port et de chemin. La valeur
--prefix
doit spécifier un dossier
d'installation différent de celui dans lequel le serveur
existant est installé.
Si vous avez un serveur MySQL qui écoute sur un port donné, vous pouvez utiliser la commande suivante pour connaître ses caractéristiques, y compris son dossier de base et son fichier de socket :
shell> mysqladmin --host=host_name --port=port_number variables
Avec les informations affichées par la commande, vous pouvez savoir quelles valeurs ne doivent pas être utilisées lors de la configuration du nouveau serveur.
Notez que si vous spécifiez ``localhost
''
comme nom d'hôte, mysqladmin
va utiliser par
défaut une socket Unix plutôt que TCP/IP. En MySQL 4.1, vous
pouvez explicitement spécifier le protocole de connexion avec
l'option --protocol={TCP | SOCKET | PIPE |
MEMORY}
.
Vous n'avez pas à compiler un nouveau serveur MySQL pour le lancer avec un numéro de port et une socket différente. Il est aussi possible de spécifier ces valeurs au moment du démarrage. Une méthode pour faire cela est d'utiliser les options de ligne de commande :
shell> /path/to/mysqld_safe --socket=file_name --port=port_number
Pour utiliser un dossier de données différent, utilisez
l'option --datadir=path
à
mysqld_safe
.
Un autre moyen pour arriver au même résultat est d'utiliser les variables d'environnement pour spécifier le nom de la socket et le numéro de port.
shell>MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell>MYSQL_TCP_PORT=3307
shell>export MYSQL_UNIX_PORT MYSQL_TCP_PORT
shell>scripts/mysql_install_db
shell>bin/mysqld_safe &
C'est une méthode rapide pour lancer un second serveur pour le tester. Le plus agréable de cette méthode est que les variables d'environnement vont être adoptées par les logiciels clients que vous invoquerez avec le même Shell. Par conséquent, les connexions seront automatiquement dirigées vers le nouveau serveur.
Annexe E, Variables d'environnement inclut une liste des
variables d'environnement que vous pouvez utiliser pour affecter
mysqld
.
Pour les scripts de lancement automatique, votre script de démarrage qui est exécuté au démarrage doit utiliser la commande suivante avec les options appropriées pour chaque serveur :
mysqld_safe --defaults-file=path-to-option-file
Chaque fichier d'options doit contenir les valeurs spécifique du serveur.
Sous Unix, le script mysqld_multi
est une
autre méthode pour lancer plusieurs serveurs. See
Section 5.1.5, « mysqld_multi
, un programme pour gérer plusieurs
serveurs MySQL ».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.