Dans cet article, je vais vous montrer comment exécuter plusieurs instances de serveur de base de données MARIADB sur le même ordinateur / serveur exécutant l'ubuntu 20.04 Système d'exploitation LTS. Alors, commençons.
Installation du serveur de base de données MARIADB:
Tout d'abord, mettez à jour le cache du référentiel de package APT avec la commande suivante:
$ sudo apt mise à jour
Vous pouvez installer le serveur de base de données MARIADB avec la commande suivante:
$ sudo apt installer mariaDb-Client MariaDB-Server
Pour confirmer l'installation, appuyez sur Y Et puis appuyez sur .
MariaDB est installé. Cela peut prendre un certain temps pour terminer.
À ce stade, MariaDB doit être installé.
Arrêt du service de base de données MARIADB:
Vous pouvez vérifier si le mysql Le service de base de données est en cours d'exécution avec la commande suivante:
$ sudo systemctl status mysql
Le mysql Le service de base de données doit être exécuté par défaut comme vous pouvez le voir dans la capture d'écran ci-dessous.
Comme nous voulons exécuter plusieurs instances du logiciel de serveur de base de données MARIADB, nous n'avons pas besoin de par défaut mysql Service SystemD à exécuter. Nous exécuterons manuellement les instances de la base de données MARIADB.
Alors, arrête le mysql Service de base de données avec la commande suivante:
$ sudo systemctl stop mysql
Le mysql Le service de base de données doit être arrêté.
$ sudo systemctl status mysql
Nous voulons également supprimer le mysql Service de base de données à partir du démarrage du système d'Ubuntu 20.04 LTS. Afin qu'il ne démarre pas automatiquement sur le démarrage.
Pour supprimer le mysql Service à partir du démarrage du système, exécutez la commande suivante:
$ sudo systemctl Désactiver mysql
Configuration de MARIADB pour exécuter plusieurs instances de base de données:
Tous les fichiers de configuration de la base de données MARIADB sont dans le / etc / mysql / mariadb.confli.d/ annuaire.
Pour faciliter le travail avec les fichiers de configuration MARIADB, accédez à la / etc / mysql / mariadb.confli.d/ Répertoire comme suit:
$ cd / etc / mysql / mariadb.confli.d/
Nous n'avons pas besoin du fichier de configuration MARIADB par défaut 50 serveur.CNF dossier plus.
Pour vous assurer que ce fichier de configuration n'est pas lu par le serveur MariaDB, renommez le fichier de configuration MariADB principal 50 serveur.CNF pour 50 serveur.CNF.sauvegarde avec la commande suivante:
$ sudo mv -v 50-server.CNF 50 serveur.CNF.sauvegarde
Créer un nouveau fichier de configuration MARIADB 50 server-multi.CNF avec la commande suivante:
$ sudo nano 50-server-multi.CNF
Tapez les lignes suivantes dans le 50 server-multi.CNF déposer.
[mysqld_multi]
mysqld = / usr / bin / mysqld_safe
mysqladmin = / usr / bin / mysqladmin
log = / var / log / mysql / mysqld_multi.enregistrer
user = multi_admin
mot de passe = secret
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le 50 server-multi.CNF déposer.
Ici, les journaux du serveur MariADB seront stockés dans le fichier / var / log / mysql / mysqld_multi.enregistrer.
Le mysqld_multi Le nom d'utilisateur de l'administration sera multi_admin et le mot de passe sera secret. Ceci est nécessaire pour permettre le FERMER Permission aux instances de serveur de base de données MARIADB.
Dans cet article, je vais exécuter 3 instances de base de données MARIADB pour la démonstration. Chacune des instances de la base de données MARIADB aura son propre fichier de configuration.
Créer un fichier de configuration 50-server1.CNF Pour le premier serveur de base de données MARIADB Instace comme suit:
$ sudo nano 50-server1.CNF
Tapez les lignes suivantes dans le 50-server1.CNF déposer.
[mysqld1]
user = mysql
pid-file = / run / mysqld / mysqld1.piquer
socket = / run / mysqld / mysqld1.chaussette
Basedir = / usr
datadir = / var / lib / mysql1
tmpdir = / tmp
lc-messages-dir = / usr / share / mysql
Bind-Address = 127.0.0.1
query_cache_size = 16m
log_error = / var / log / mysql / mysqld1_error.enregistrer
expire_logs_days = 10
personnage-set-server = utf8mb4
collation-server = utf8mb4_general_ci
port = 20101
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le 50-server1.CNF déposer.
Ici, mysqld1 est le nom d'instance. Pour la deuxième instance, ce sera mysqld2 et ainsi de suite.
Le chemin d'accès vers le fichier PID sera / run / mysqld / mysqld1.piquer et le fichier de socket sera / run / mysqld / mysqld1.chaussette pour le mysqld1 exemple. Ceux-ci seront différents pour chacune des instances MariaDB.
Le répertoire de données pour le mysqld1 L'instance sera / var / lib / mysql1. Ce sera différent pour chacune des instances mariaDB.
Le chemin du fichier journal d'erreur pour le mysqld1 L'instance sera / var / log / mysql / mysqld1_error.enregistrer. Ce sera différent pour chacune des instances mariaDB.
Le port du mysqld1 L'instance sera 20101. Ce sera différent pour chacune des instances mariaDB.
Le fichier de configuration pour les deuxième et troisième instances de MariADB sera similaire à la première instance MariADB. Ainsi, nous pouvons simplement copier le premier fichier de configuration d'instance MARIADB 50-server1.CNF et faire de petits ajustements.
Copier le 50-server1.CNF Pour créer un nouveau fichier de configuration 50-server2.CNF Pour la deuxième instance MariaDB comme suit:
$ sudo cp -v 50-server1.CNF 50-Server2.CNF
De la même manière, copiez le 50-server1.CNF Pour créer un nouveau fichier de configuration 50-server3.CNF Pour la troisième instance MariaDB comme suit:
$ sudo cp -v 50-server1.CNF 50-Server2.CNF
Pour effectuer des ajustements au deuxième fichier de configuration d'instance de serveur MARIADB 50-server2.CNF, Ouvrez-le avec le nano Éditeur de texte comme suit:
$ sudo nano 50-server2.CNF
Ajustez les sections marquées du fichier de configuration 50-server2.CNF.
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le 50-server2.CNF déposer.
Pour effectuer des ajustements au troisième fichier de configuration d'instance de serveur MARIADB 50-server3.CNF, Ouvrez-le avec le nano Éditeur de texte comme suit:
$ sudo nano 50-server3.CNF
Ajustez les sections marquées du fichier de configuration 50-server3.CNF.
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le 50-server3.CNF déposer.
Création des fichiers journaux MARIADB:
Créer un fichier journal mysqld_multi.enregistrer dans le / var / log / mysql / répertoire pour le mysqld_multi Programme comme suit:
$ sudo touch / var / log / mysql / mysqld_multi.enregistrer
Réglez le propriétaire (sur mysql) et groupe (à adm) de la mysqld_multi.enregistrer fichier avec la commande suivante:
$ sudo chown -v mysql: adm / var / log / mysql / mysqld_multi.enregistrer
Définissez les autorisations de fichier correctes sur le mysqld_multi.enregistrer fichier avec la commande suivante:
$ sudo chmod -v u = rw, g = rw, o = / var / log / mysql / mysqld_multi.enregistrer
Créer des fichiers journaux d'erreur pour le mysqld1, mysqld2, et mysqld3 Instances MariaDB avec la commande suivante:
$ sudo touch / var / log / mysql / mysqld 1… 3 _error.enregistrer
Changer le propriétaire (en mysql) et groupe (à adm) des fichiers journaux d'erreur du mysqld1, mysqld2, et mysqld3 Instances MariaDB avec la commande suivante:
$ sudo chown -v mysql: adm / var / log / mysql / mysqld 1… 3 _error.enregistrer
Définissez les autorisations de fichier correctes sur les fichiers journaux d'erreur du mysqld1, mysqld2, et mysqld3 Instances MariaDB avec la commande suivante:
$ sudo chmod -v u = rw, g = rw, o = / var / log / mysql / mysqld 1… 3 _error.enregistrer
Création et préparation des répertoires de données MARIADB:
Créer des répertoires de données MARIADB pour le mysqld1, mysqld2, et le mysqld3 Instances MariaDB avec la commande suivante:
$ sudo mkdir -v / var / lib / mysql 1… 3
Modifiez le propriétaire et le groupe de chacun des répertoires de données en mysql avec la commande suivante:
$ sudo chown -v mysql: mysql / var / lib / mysql 1… 3
Définissez les autorisations correctes sur chacun des répertoires de données avec la commande suivante:
$ sudo chmod -v u = rwx, g = rx, o = rx / var / lib / mysql 1… 3
Une fois que les autorisations du propriétaire, du groupe et du fichier sont correctement définies, tous les répertoires de données MARIADB doivent être consultés comme indiqué dans la capture d'écran ci-dessous:
$ ls -lhd / var / lib / mysql *
Maintenant, vous devez préparer les répertoires de données MARIADB. Pour ce faire, vous pouvez utiliser le mysql_install_db commande.
Pour préparer le répertoire de données MARIADB / var / lib / mysql1 pour le mysqld1 instance, exécutez la commande suivante:
$ sudo mysql_install_db --user = mysql --datadir = / var / lib / mysql1
Le répertoire de données / var / lib / mysql1 devrait être prêt pour le mysqld1 exemple.
De la même manière, préparez le répertoire de données MARIADB / var / lib / mysql2 pour le mysqld2 Instance avec la commande suivante:
$ sudo mysql_install_db --user = mysql --datadir = / var / lib / mysql2
Le répertoire de données / var / lib / mysql2 devrait être prêt pour le mysqld2 exemple.
Préparez également le répertoire de données MARIADB / var / lib / mysql3 pour le mysqld3 Instance avec la commande suivante:
$ sudo mysql_install_db --user = mysql --datadir = / var / lib / mysql3
Le répertoire de données / var / lib / mysql3 devrait être prêt pour le mysqld3 exemple.
Exécution de plusieurs instances MariADB:
Vous pouvez maintenant exécuter plusieurs instances MariaDB en utilisant le mysqld_multi programme.
Vous pouvez vérifier si les instances mariaDB mysqld1, mysqld2, et mysqld3 s'exécute avec la commande suivante:
$ sudo mysqld_multi rapport
Comme vous pouvez le voir, les instances de mariadb ne fonctionnent pas pour le moment.
Vous pouvez démarrer toutes les instances de serveur de base de données MARIADB avec la commande suivante:
$ sudo mysqld_multi start
Comme vous pouvez le voir, les instances de serveur de base de données MARIADB mysqld1, mysqld2, et mysqld3 sont en train de courir.
$ sudo mysqld_multi rapport
Comme vous pouvez le voir, les ports de la base de données MARIADB 20101 (pour mysqld1), 20102 (pour mysqld2), et 20103 (pour mysqld3) sont en train d'écouter. Ainsi, les instances de la base de données MARIADB fonctionnent parfaitement.
Accordant une autorisation de fermeture aux instances de la base de données MARIADB:
mysqld_multi a besoin d'avoir le FERMER Permission de pouvoir arrêter les instances de base de données MARIADB. Pour accorder l'autorisation de fermeture à mysqld_multi, Vous devez vous connecter à chacune des instances de base de données MARIADB, créer un multi_admin Utilisateur (avec le mot de passe de connexion secret), et accorder le FERMER autorisation au multi_admin utilisateur.
Tout d'abord, connectez-vous à la première instance de serveur de base de données MARIADB mysqld1 avec la commande suivante:
$ sudo mysql -s / run / mysqld / mysqld1.chaussette -u racine
Vous devriez être connecté.
Pour créer un nouvel utilisateur multi_admin avec le mot de passe secret et accorder le FERMER autorisation au multi_admin Utilisateur, exécutez l'instruction SQL suivante:
MariaDB [(Aucun)]> Grant Arrêt sur *.* À «multi_admin» @ «localhost» identifié par «secret»;
Sortez de la console de base de données MARIADB avec la commande suivante:
MariaDb [(aucun)]> sortie
De la même manière, connectez-vous à la deuxième instance de serveur de base de données MARIADB mysqld2 avec la commande suivante:
$ sudo mysql -s / run / mysqld / mysqld2.chaussette -u racine
Créer un nouvel utilisateur multi_admin avec le mot de passe secret et accorder le FERMER autorisation au multi_admin Utilisateur avec l'instruction SQL suivante:
MariaDB [(Aucun)]> Grant Arrêt sur *.* À «multi_admin» @ «localhost» identifié par «secret»;
Sortez de la console de base de données MARIADB avec la commande suivante:
MariaDb [(aucun)]> sortie
Connectez-vous également à la troisième instance de serveur de base de données MARIADB mysqld3 avec la commande suivante:
$ sudo mysql -s / run / mysqld / mysqld3.chaussette -u racine
Créer un nouvel utilisateur multi_admin avec le mot de passe secret et accorder le FERMER autorisation au multi_admin Utilisateur avec l'instruction SQL suivante:
MariaDB [(Aucun)]> Grant Arrêt sur *.* À «multi_admin» @ «localhost» identifié par «secret»;
Sortez de la console de base de données MARIADB avec la commande suivante:
MariaDb [(aucun)]> sortie
Voyons si mysqld_multi peut arrêter les instances de serveur de base de données MariADB.
Comme vous pouvez le voir, les instances de serveur de base de données MARIADB sont en cours d'exécution.
$ sudo mysqld_multi rapport
Pour arrêter les instances de serveur de base de données MARIADB, exécutez la commande suivante:
$ sudo mysqld_multi stop
Comme vous pouvez le voir, les instances du serveur de base de données MARIADB ne fonctionnent plus.
$ sudo mysqld_multi rapport
Les ports de serveur de base de données MARIADB 20101 (pour mysqld1), 20102 (pour mysqld2), et 20103 (pour mysqld3) n'écoutent pas aussi bien.
Démarrage des instances de serveur de base de données MARIADB sur le démarrage du système:
Vous ne voulez pas démarrer les instances de serveur de base de données MARIADB manuellement chaque fois que votre serveur démarre. Pour démarrer automatiquement les instances de serveur de base de données MARIADB, vous pouvez ajouter la commande de départ en tant que cronjob.
Pour ajouter n'importe quel cronjob, vous devez modifier le fichier crontab.
Pour modifier le fichier crontab, exécutez la commande suivante:
$ sudo crontab -e
Presse 1 (pour sélectionner l'éditeur de texte nano) puis appuyer sur .
Le fichier crontab doit être ouvert. Ajouter la ligne comme marqué dans la capture d'écran ci-dessous.
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour enregistrer le fichier crontab.
Pour que les modifications prennent effet, redémarrez votre ordinateur avec la commande suivante:
$ sudo redémarrer
Une fois que votre ordinateur a botté, vous devriez voir que toutes les instances de base de données MARIADB sont en cours d'exécution.
$ sudo mysqld_multi rapport
Comme vous pouvez le voir, les ports de la base de données MARIADB 20101 (pour mysqld1), 20102 (pour mysqld2), et 20103 (pour mysqld3) sont en train d'écouter. Ainsi, les instances de la base de données MARIADB fonctionnent parfaitement.
Conclusion:
Dans cet article, je vous ai montré comment exécuter plusieurs instances du serveur de base de données MARIADB sur le même ordinateur / serveur à l'aide du mysqld_multi programme. Cet article devrait vous aider à configurer plusieurs instances du serveur de base de données MARIADB sur le même Ubuntu 20.04 ordinateur / serveur LTS.