GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer plusieurs serveurs MySQL sur un seul système à l'aide de mysqld_multi

Quelques étapes suffisent pour configurer plusieurs serveurs sur un seul système. Tout d'abord, le fichier de configuration de MySQL devra être ajusté. Un groupe d'options distinct devra être saisi pour chaque serveur. Au minimum, chaque serveur doit se voir attribuer un port TCP/IP unique et soit un fichier de socket différent.

Les groupes de serveurs pour plusieurs serveurs dans le fichier de configuration sont identifiés par un préfixe mysqld suivi d'un suffixe numérique. Par exemple, le premier serveur peut être identifié par un en-tête de groupe comme [mysqld1], vous pouvez commencer par 0 ou un autre nombre. Le deuxième serveur pourrait être [mysqld2]. Les numéros ne doivent pas nécessairement être séquentiels en soi. Les numéros peuvent être sautés. Toutes les options qui peuvent être données pour un groupe [mysqld] peuvent être données à n'importe quel serveur supplémentaire. Cela vous permet de modifier les options du serveur pour répondre à toutes les exigences particulières qui peuvent être nécessaires pour une base de données. Vous trouverez ci-dessous le contenu d'un fichier /etc/my.cnf fichier configuré pour trois serveurs.

Remarque :Il est extrêmement important de noter que chaque instance doit également avoir son propre répertoire de données. Au minimum, chaque serveur doit se voir attribuer un port TCP/IP unique et/ou un fichier socket différent.
# vi /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/bin/mysqld_safe

[mysqld0]
port = 3306
socket = /tmp/mysql.sock0
pid-file = /usr/local/mysql/server0/
user = mysql0
datadir = /usr/local/mysql/server0

[mysqld1]
port = 3307
socket = /tmp/mysql.sock1
pid-file = /usr/local/mysql/server1/
user = mysql1
datadir = /usr/local/mysql/server1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file = /usr/local/mysql/server2/
user = mysql2
datadir = /usr/local/mysql/server2

Tout d'abord, notez qu'il n'y a pas de groupe étiqueté [mysqld] . Cela confondrait les choses. Dans ce fichier de configuration, chaque serveur utilise un port différent. Cela nécessitera des ajustements à tous les scripts qui accèdent au serveur. Le port devra être renseigné pour que le port par défaut (3306 ) n'est pas utilisé. Le premier serveur ci-dessus utilise le port par défaut. Dans cet exemple, un utilisateur de système de fichiers distinct est nommé pour chaque serveur. Ce n'est pas nécessaire. Cependant, cela peut être utile pour un meilleur contrôle de la sécurité. Cela nécessitera la création de chaque utilisateur système au niveau du système de fichiers, bien sûr.

La dernière option définie dans chaque groupe du fichier de configuration ci-dessus est le répertoire de données pour chaque serveur. Les serveurs ne peuvent pas partager le même répertoire de données. Par conséquent, cela nécessitera la création d'un répertoire séparé sur le système de fichiers. Assurez-vous de changer la propriété des répertoires de données à l'utilisateur système respectif (par exemple, mysql0).

Une fois que le fichier de configuration a été configuré correctement, que les utilisateurs du système ont été créés et que les répertoires associés sont en place, les serveurs peuvent être démarrés. Pour le faire facilement, utilisez le mysqld_multi scénario. Ce script lira le fichier de configuration MySQL et recherchera les groupes de serveurs en suivant la convention de dénomination mentionnée précédemment. Pour démarrer tous les serveurs, les éléments suivants doivent être entrés à partir de la ligne de commande :

$ mysqld_multi start

Cette ligne démarrera une instance distincte de mysqld_safe pour chaque groupe de serveurs répertorié dans le fichier de configuration. Incidemment, pour utiliser un fichier de configuration spécial pour mysqld_multi, ajoutez simplement le "–config-file =file ” option avant le paramètre de démarrage. Pour arrêter tous les serveurs, remplacez le paramètre start par stop. Pour les rapports d'état du serveur, utilisez le paramètre report. Pour démarrer un serveur spécifique, indiquez le numéro d'identification du serveur après le paramètre de démarrage. Par exemple, pour arrêter le serveur étiqueté [mysqld2] dans le fichier de configuration présenté précédemment, ce qui suit serait saisi :

$ mysqld_multi stop 2

Le préfixe mysqld est omis. Une plage de serveurs peut être nommée en donnant le numéro du premier serveur, suivi d'un tiret, puis le numéro du dernier (par exemple, 2-5). Les serveurs peuvent être répertoriés individuellement en séparant leur identifiant par des virgules (par exemple, 2, 4). Et, une combinaison des deux méthodes peut être utilisée (par exemple, 2, 4-7).

Pour un ensemble plus long d'exemples sur la façon dont un fichier de configuration peut être construit, entrez ce qui suit à partir de la ligne de commande :

$ mysqld_multi --example


Linux
  1. Comment configurer plusieurs sites Web avec le serveur Web Apache

  2. Comment configurer une base de données esclave MySQL

  3. Comment télécharger un fichier depuis un serveur en utilisant SSH ?

  4. Comment compresser plusieurs fichiers dans un seul fichier gz?

  5. Comment lier le serveur MySQL à plusieurs adresses IP ?

Comment configurer le serveur SFTP sur CentOS ?

Comment configurer un serveur de fichiers de base à l'aide de simpleHTTPserver

Comment joindre plusieurs lignes en une seule dans un fichier sous Linux

Comment monter un système de fichiers Linux distant à l'aide de SSHFS

Comment installer et configurer un serveur NFS sur un système Linux

Comment installer le serveur de partage de fichiers Samba sur le système Linux