Führen Sie mehrere Mariadb -Instanzen auf Ubuntu Top 10 aus.Top 10 Lts

Führen Sie mehrere Mariadb -Instanzen auf Ubuntu Top 10 aus.Top 10 Lts
Manchmal müssen Sie möglicherweise mehrere Instanzen der MariADB -Datenbankserver -Software auf demselben Computer/Server ausführen. Mariadb hat ein offizielles Werkzeug mysqld_multi So führen Sie mehrere Instanzen der MariADB -Datenbankserver -Software auf demselben Computer/Server aus.

In diesem Artikel werde ich Ihnen zeigen, wie Sie mehrere MariADB -Datenbankserver -Instanzen auf demselben Computer/Server ausführen, das die Ubuntu 20 ausführt.04 LTS -Betriebssystem. Also lasst uns anfangen.

Installieren von MariADB -Datenbankserver:

Aktualisieren Sie zunächst den APT -Paket -Repository -Cache mit dem folgenden Befehl:

$ sudo APT Update


Sie können den MariADB -Datenbankserver mit dem folgenden Befehl installieren:

$ sudo APT Installieren Sie Mariadb-Client Mariadb-Server


Um die Installation zu bestätigen, drücken Sie Y und dann drücken Sie .


Mariadb wird installiert. Es kann eine Weile dauern, bis es fertig ist.


Zu diesem Zeitpunkt sollte Mariadb installiert werden.

Stoppen des Mariadb -Datenbankdienstes:

Sie können überprüfen, ob die Mysql Der Datenbankdienst wird mit dem folgenden Befehl ausgeführt:

$ sudo systemctl Status MySQL


Der Mysql Der Datenbankdienst sollte standardmäßig ausgeführt werden, wie Sie im folgenden Screenshot sehen können.


Da wir mehrere Instanzen der MariADB -Datenbankserver -Software ausführen möchten, benötigen wir den Standard nicht Mysql SYSTEMD -Service zum Ausführen. Wir werden die Mariadb -Datenbankinstanzen manuell ausführen.

Also stoppen Sie die Mysql Datenbankdienst mit dem folgenden Befehl:

$ sudo systemctl stop MySQL


Der Mysql Der Datenbankdienst sollte gestoppt werden.

$ sudo systemctl Status MySQL


Wir wollen auch das entfernen Mysql Datenbankdienst vom Systemstart von Ubuntu 20.04 LTS. Damit es nicht automatisch mit dem Start startet.

Um das zu entfernen Mysql Aus dem folgenden Befehl aus dem System des Systemstarts: Aus den folgenden Befehl:

$ sudo systemctl deaktivieren MySQL

Konfigurieren von MariADB für das Ausführen mehrerer Datenbankinstanzen:

Alle MariADB -Datenbankkonfigurationsdateien befinden sich in der /etc/mysql/mariadb.Conf.D/ Verzeichnis.

Um mit den MariADB -Konfigurationsdateien zu vereinfachen /etc/mysql/mariadb.Conf.D/ Verzeichnis wie folgt:

$ cd/etc/mysql/mariadb.Conf.D/


Wir brauchen nicht die Standard -MariADB -Konfigurationsdatei 50-server.CNF Datei mehr.

Um sicherzustellen, dass diese Konfigurationsdatei nicht vom MariADB -Server gelesen wird 50-server.CNF Zu 50-server.CNF.Backup mit dem folgenden Befehl:

$ sudo mv -v 50 -server.CNF 50-Server.CNF.Backup


Erstellen Sie eine neue MariADB -Konfigurationsdatei 50-Server-Multi.CNF mit dem folgenden Befehl:

$ sudo nano 50-server-Multi.CNF


Geben Sie die folgenden Zeilen in die ein 50-Server-Multi.CNF Datei.

[mysqld_multi]
mysqld =/usr/bin/mysqld_safe
Mysqladmin =/usr/bin/mysqladmin
log =/var/log/mysql/mysqld_multi.Protokoll
user = multi_admin
Passwort = Geheimnis

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten 50-Server-Multi.CNF Datei.


Hier werden die MariADB -Serverprotokolle in der Datei gespeichert /var/log/mysql/mysqld_multi.Protokoll.

Der mysqld_multi Admin -Benutzername wird sein multi_admin und das Passwort wird sein Geheimnis. Dies ist erforderlich, um das zuzulassen ABSCHALTEN Genehmigung an den MariADB -Datenbankserver -Instanzen.


In diesem Artikel werde ich 3 Mariadb -Datenbankinstanzen für die Demonstration ausführen. Jede der MariADB -Datenbankinstanzen verfügt über eine eigene Konfigurationsdatei.

Erstellen Sie eine Konfigurationsdatei 50-server1.CNF Für den ersten MariADB -Datenbankserver Instace wie folgt:

$ sudo nano 50-server1.CNF


Geben Sie die folgenden Zeilen in die ein 50-server1.CNF Datei.

[Mysqld1]
user = mysql
pid-file =/run/mysqld/mysqld1.PID
Socket =/run/mysqld/mysqld1.Socke
basiertiR = /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.Protokoll
expire_logs_days = 10
Charakter-set-server = utf8mb4
collation-server = utf8mb4_general_ci
Port = 20101

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten 50-server1.CNF Datei.


Hier, Mysqld1 ist der Instanzname. In der zweiten Instanz wird es sein MySQLD2 usw.


Der Pfad zur PID -Datei ist /run/mysqld/mysqld1.PID und Socket -Datei wird sein /run/mysqld/mysqld1.Socke für die Mysqld1 Beispiel. Diese sind für jede der Mariadb -Instanzen unterschiedlich.


Das Datenverzeichnis für die Mysqld1 Instanz wird sein /var/lib/mysql1. Für jede der Mariadb -Instanzen wird es anders sein.


Der Fehlerprotokolldateipfad für die Mysqld1 Instanz wird sein /var/log/mysql/mysqld1_error.Protokoll. Für jede der Mariadb -Instanzen wird es anders sein.


Der Hafen der Mysqld1 Instanz wird sein 20101. Für jede der Mariadb -Instanzen wird es anders sein.


Die Konfigurationsdatei für die zweite und die dritte MariADB -Instanzen ähnelt der ersten Mariadb -Instanz. So können wir einfach die erste Mariadb -Instanzkonfigurationsdatei kopieren 50-server1.CNF und kleine Anpassungen vornehmen.

Kopiere das 50-server1.CNF So erstellen Sie eine neue Konfigurationsdatei 50-server2.CNF Für die zweite Mariadb -Instanz wie folgt:

$ sudo cp -v 50 -server1.CNF 50-Server2.CNF


Genauso kopieren Sie die 50-server1.CNF So erstellen Sie eine neue Konfigurationsdatei 50-server3.CNF Für die dritte Mariadb -Instanz wie folgt:

$ sudo cp -v 50 -server1.CNF 50-Server2.CNF


Um Anpassungen an der zweiten MariADB Server -Instanzkonfigurationsdatei vorzunehmen 50-server2.CNF, Öffne es mit dem Nano Texteditor wie folgt:

$ sudo nano 50-server2.CNF


Passen Sie die markierten Abschnitte der Konfigurationsdatei an 50-server2.CNF.

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten 50-server2.CNF Datei.


Um Anpassungen an der dritten MariADB Server -Instanzkonfigurationsdatei vorzunehmen 50-server3.CNF, Öffne es mit dem Nano Texteditor wie folgt:

$ sudo nano 50-server3.CNF


Passen Sie die markierten Abschnitte der Konfigurationsdatei an 50-server3.CNF.

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten 50-server3.CNF Datei.

Erstellen der Mariadb -Protokolldateien:

Erstellen Sie eine Protokolldatei mysqld_multi.Protokoll im /var/log/mysql/ Verzeichnis für die mysqld_multi Programm wie folgt:

$ sudo touch/var/log/mysql/mysqld_multi.Protokoll


Setzen Sie den Besitzer (auf Mysql) und Gruppe (zu adm) des mysqld_multi.Protokoll Datei mit dem folgenden Befehl:

$ sudo chown -v mysql: adm/var/log/mysql/mysqld_multi.Protokoll


Legen Sie die richtigen Dateiberechtigungen auf die mysqld_multi.Protokoll Datei mit dem folgenden Befehl:

$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld_multi.Protokoll


Erstellen Sie Fehlerprotokolldateien für die Mysqld1, MySQLD2, Und Mysqld3 Mariadb -Instanzen mit dem folgenden Befehl:

$ sudo touch/var/log/mysql/mysqld 1… 3 _Error.Protokoll


Den Besitzer ändern (zu Mysql) und Gruppe (zu adm) der Fehlerprotokolldateien der Mysqld1, MySQLD2, Und Mysqld3 Mariadb -Instanzen mit dem folgenden Befehl:

$ sudo chown -v mysql: adm/var/log/mysql/mysqld 1… 3 _Error.Protokoll


Legen Sie die richtigen Dateiberechtigungen auf die Fehlerprotokolldateien des Mysqld1, MySQLD2, Und Mysqld3 Mariadb -Instanzen mit dem folgenden Befehl:

$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld 1… 3 _Error.Protokoll

Erstellen und Vorbereitung der Mariadb -Datenverzeichnisse:

Erstellen Sie Mariadb -Datenverzeichnisse für die Mysqld1, MySQLD2, und das Mysqld3 Mariadb -Instanzen mit dem folgenden Befehl:

$ sudo mkdir -v/var/lib/mysql 1… 3


Ändern Sie den Eigentümer und die Gruppe jeder Datenverzeichnisse auf Mysql mit dem folgenden Befehl:

$ sudo chown -v mysql: mysql/var/lib/mysql 1… 3


Legen Sie die korrekten Berechtigungen für jedes der Datenverzeichnisse mit dem folgenden Befehl fest:

$ sudo chmod -v u = rwx, g = rx, o = rx/var/lib/mysql 1… 3


Sobald der Eigentümer, die Gruppe und die Dateiberechtigungen korrekt eingestellt sind, sollten alle MariADB -Datenverzeichnisse wie im folgenden Screenshot angezeigt werden:

$ ls -lhd/var/lib/mysql*


Jetzt müssen Sie die Mariadb -Datenverzeichnisse vorbereiten. Dazu können Sie die verwenden mysql_install_db Befehl.

Vorbereitung des Mariadb -Datenverzeichnisses /var/lib/mysql1 für die Mysqld1 Instanz führen Sie den folgenden Befehl aus:

$ sudo mysql_install_db --user = mysql - -datadir =/var/lib/mysql1


Das Datenverzeichnis /var/lib/mysql1 sollte bereit für die sein Mysqld1 Beispiel.


Bereiten Sie das Mariadb -Datenverzeichnis auf die gleiche Weise vor /var/lib/mysql2 für die MySQLD2 Instanz mit dem folgenden Befehl:

$ sudo mysql_install_db --user = mysql - -datadir =/var/lib/mysql2


Das Datenverzeichnis /var/lib/mysql2 sollte bereit für die sein MySQLD2 Beispiel.


Bereiten Sie außerdem das MariADB -Datenverzeichnis vor /var/lib/mysql3 für die Mysqld3 Instanz mit dem folgenden Befehl:

$ sudo mysql_install_db --user = mysql - -datadir =/var/lib/mysql3


Das Datenverzeichnis /var/lib/mysql3 sollte bereit für die sein Mysqld3 Beispiel.

Ausführen mehrerer Mariadb -Instanzen:

Jetzt können Sie mehrere Mariadb -Instanzen verwenden mysqld_multi Programm.

Sie können überprüfen, ob die Mariadb -Instanzen Mysqld1, MySQLD2, Und Mysqld3 Läuft mit dem folgenden Befehl:

$ sudo mysqld_multi Bericht


Wie Sie sehen können, laufen die Mariadb -Instanzen momentan nicht.


Sie können alle MariADB -Datenbankserver -Instanzen mit dem folgenden Befehl starten:

$ sudo mysqld_multi starten


Wie Sie sehen können, Instanzen der MariADB -Datenbankserver Mysqld1, MySQLD2, Und Mysqld3 Rennen.

$ sudo mysqld_multi Bericht


Wie Sie sehen können, sind die MariADB -Datenbankports Ports 20101 (für Mysqld1), 20102 (für MySQLD2), Und 20103 (für Mysqld3) hören zu. Die Mariadb -Datenbankinstanzen laufen also perfekt.

Erteilung der Schadenserlaubnis an die MariADB -Datenbankinstanzen:

mysqld_multi muss das haben ABSCHALTEN Erlaubnis, die MariADB -Datenbankinstanzen einstellen zu können. Erteilung der Schadenserlaubnis zu erteilen mysqld_multi, Sie müssen sich bei jedem der MariADB -Datenbankinstanzen anmelden, erstellen Sie a multi_admin Benutzer (mit dem Anmeldekennwort Geheimnis) und gewähren die ABSCHALTEN Erlaubnis an die multi_admin Benutzer.

Melden Sie sich zunächst bei der ersten MariADB -Datenbankserverinstanz an Mysqld1 mit dem folgenden Befehl:

$ sudo mysql -s/run/mysqld/mysqld1.SOCK -U Wurzel


Sie sollten angemeldet sein.


So erstellen Sie einen neuen Benutzer multi_admin mit dem Passwort Geheimnis und gewähren die ABSCHALTEN Erlaubnis an die multi_admin Benutzer führen Sie die folgende SQL -Anweisung aus:

Mariadb [(keine)]> Grant Shutdown on *.* Zu 'multi_admin'@'localhost' identifiziert durch 'Secret';


Beenden Sie mit dem folgenden Befehl aus der MariADB -Datenbankkonsole:

Mariadb [(keine)]>


Melden Sie sich auf die zweite MariADB -Datenbankserverinstanz an MySQLD2 mit dem folgenden Befehl:

$ sudo mysql -s/run/mysqld/mysqld2.SOCK -U Wurzel


Erstellen Sie einen neuen Benutzer multi_admin mit dem Passwort Geheimnis und gewähren die ABSCHALTEN Erlaubnis an die multi_admin Benutzer mit der folgenden SQL -Anweisung:

Mariadb [(keine)]> Grant Shutdown on *.* Zu 'multi_admin'@'localhost' identifiziert durch 'Secret';


Beenden Sie mit dem folgenden Befehl aus der MariADB -Datenbankkonsole:

Mariadb [(keine)]>


Melden Sie sich auch bei der dritten MariADB -Datenbankserverinstanz an Mysqld3 mit dem folgenden Befehl:

$ sudo mysql -s/run/mysqld/mysqld3.SOCK -U Wurzel


Erstellen Sie einen neuen Benutzer multi_admin mit dem Passwort Geheimnis und gewähren die ABSCHALTEN Erlaubnis an die multi_admin Benutzer mit der folgenden SQL -Anweisung:

Mariadb [(keine)]> Grant Shutdown on *.* Zu 'multi_admin'@'localhost' identifiziert durch 'Secret';


Beenden Sie mit dem folgenden Befehl aus der MariADB -Datenbankkonsole:

Mariadb [(keine)]>


Mal sehen, ob mysqld_multi Kann die MariADB -Datenbankserver -Instanzen stoppen.

Wie Sie sehen können, werden die MariADB -Datenbankserver -Instanzen ausgeführt.

$ sudo mysqld_multi Bericht


Führen Sie den folgenden Befehl aus: Um die MariADB -Datenbankserver -Instanzen zu stoppen, führen Sie den folgenden Befehl aus:

$ sudo mysqld_multi stoppen


Wie Sie sehen können, werden die MariADB -Datenbankserver -Instanzen nicht mehr ausgeführt.

$ sudo mysqld_multi Bericht


Die MariADB -Datenbankserver -Ports 20101 (für Mysqld1), 20102 (für MySQLD2), Und 20103 (für Mysqld3) Hören auch nicht zu.

Starten von MariADB -Datenbankserver -Instanzen im Systemstart:

Sie möchten nicht jedes Mal, wenn Ihr Server Boots startet. Um die MariADB -Datenbankserver -Instanzen automatisch zu starten, können Sie den Startbefehl als Cronjob hinzufügen.

Um Cronjob hinzuzufügen, müssen Sie die Crontab -Datei ändern.

Führen Sie den folgenden Befehl aus, um die Crontab -Datei zu ändern:

$ sudo crontab -e


Drücken Sie 1 (Um den Nano -Texteditor auszuwählen) und dann drücken .


Die Crontab -Datei sollte geöffnet werden. Fügen Sie die im Screenshot unten markierte Zeile hinzu.

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und Um die Crontab -Datei zu speichern.


Starten Sie Ihren Computer mit dem folgenden Befehl neu, damit die Änderungen wirksam werden sollen:

$ sudo Neustart


Sobald Ihr Computerstiefel startet, sollten Sie feststellen, dass alle MariADB -Datenbankinstanzen ausgeführt werden.

$ sudo mysqld_multi Bericht


Wie Sie sehen können, sind die MariADB -Datenbankports Ports 20101 (für Mysqld1), 20102 (für MySQLD2), Und 20103 (für Mysqld3) hören zu. Die Mariadb -Datenbankinstanzen laufen also perfekt.

Abschluss:

In diesem Artikel habe ich Ihnen gezeigt mysqld_multi Programm. Dieser Artikel sollte Ihnen helfen, mehrere Instanzen des MariADB -Datenbankservers auf demselben Ubuntu 20 einzurichten.04 LTS Computer/Server.