MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem, das häufig für die Datenverwaltung verschiedener Anwendungen verwendet wird. Bei der tatsächlichen Verwendung ist es manchmal erforderlich, mehrere MySQL-Instanzen gleichzeitig zu installieren, um verschiedene Anwendungen oder Szenarien zu unterstützen. In diesem Artikel wird erläutert, wie mehrere MySQL-Instanzen auf demselben Server installiert werden.
1. Vorbereitungen vor der Installation
Bevor Sie mehrere MySQL-Instanzen installieren, müssen Sie die folgenden Vorbereitungen treffen:
2. Installieren Sie mehrere MySQL-Instanzen basierend auf Binärpaketen
Die folgenden Schritte sind zum Installieren mehrerer MySQL-Instanzen basierend auf Binärpaketen:
Nach dem Entpacken der mehreren MySQL-Installationen Pakete. Sie können es in einen anderen Namen umbenennen, um es leichter zu unterscheiden, zum Beispiel: mysql1, mysql2 usw.
$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql1
$ tar -zxvf mysql-8.0.22 -linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql2
Jede MySQL-Instanz erfordert ein unabhängiges Datenverzeichnis, erforderlich Initialisieren mit dem Befehl mysql_install_db. Im Folgenden sind die Befehle zum Initialisieren von mysql1- und mysql2-Instanzen aufgeführt:
$ cd mysql1
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql1 --datadir=/data/mysql1
$ cd ./mysql2
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql2 --datadir=/data/mysql2
Für jede MySQL-Instanz , erforderlich Verwenden Sie den Befehl mysqld_safe, um den MySQL-Dienst zu installieren. Der folgende Befehl ist zum Installieren von mysql1- und mysql2-Instanzen erforderlich:
$ cp support-files/mysql.server /etc/init.d/mysql1
$ cp support-files/ mysql.server /etc/init .d/mysql2
$ chmod +x /etc/init.d/mysql1
$ chmod +x /etc/init.d/mysql2
$ chkconfig --add mysql1
$ chkconfig --add mysql2
$ service mysql1 start
$ service mysql2 start
Für jede MySQL-Instanz ist eine unabhängige Konfigurationsdatei my.cnf erforderlich. Sie können eine my.cnf-Datei im MySQL-Installationsverzeichnis erstellen Im Folgenden finden Sie ein Beispiel für die Datei my.cnf:
[mysqld]
datadir=/data/mysql1
socket=/share/tmp/mysql1.sock
port = 3306
user=mysql
log-error=/data /mysql1/mysql.err
pid-file= /share/tmp/mysql1.pid
[mysqld2]
datadir=/data/mysql2
socket=/share/tmp/ mysql2.sock
port = 3307
user=mysql
log-error=/data/mysql2/mysql.err
pid-file=/share/tmp/mysql2.pid
Verwenden Sie den folgenden Befehl um einen MySQL-Benutzer zu erstellen und die entsprechenden Verzeichnisberechtigungen zu erteilen:
$ useradd - r -g mysql -s /bin/false mysql1
$ useradd -r -g mysql -s /bin/false mysql2
$ chown -R mysql: mysql /data/mysql1
$ chown -R mysql:mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql:mysql /share/opt/mysql2
3. Installieren Mehrere MySQL-Instanzen basierend auf Docker-Containern
Erforderlich: Installieren Sie zuerst die Docker-Umgebung auf dem Server und rufen Sie das MySQL-Docker-Image ab. Der folgende Befehl lautet:
$ docker pull mysql/mysql-server:latest
Sie können mehrere MySQL-Container starten, um den Anforderungen mehrerer Instanzen gerecht zu werden. Sie können verschiedene Instanzen unterscheiden, indem Sie unterschiedliche Ports, Datenmengen und Konfigurationsdateien angeben . Hier ist ein Beispielbefehl zum Starten von zwei verschiedenen MySQL-Instanzen:
$ docker run --name=mysql1 -d
-e MYSQL_ROOT_PASSWORD=your_password
-p 3306:3306
-v /data/mysql1:/var/lib/ mysql
-v /share/opt/mysql1:/etc/mysql
mysql/mysql-server:latest
$ docker run --name=mysql2 -d
-e MYSQL_ROOT_PASSWORD=your_password
-p 3307:3306
-v / data /mysql2:/var/lib/mysql
-v /share/opt/mysql2:/etc/mysql
mysql/mysql-server:latest
können separat in verschiedenen Datenmengen erstellt werden. Verschiedene Konfigurationen Dateien my.cnf werden dann jeweils in verschiedene Container gemountet. Das Folgende ist ein Beispiel für my.cnf:
[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld. sock
port = 3306
user = mysql
log-error = /var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3307
user = mysql
log-error = /var/lib /mysql /mysql.err
pid-file = /var/run/mysqld/mysqld.pid
Nachdem Sie mehrere MySQL-Instanzen konfiguriert haben, können Sie eine Verbindung zum entsprechenden Port herstellen und entsprechende Datenbankinstanznamen verwenden und konfigurieren entsprechende Benutzer, um mehrere MySQL-Instanzen zu verwenden:
mysql -h localhost -u Benutzername1 -p -P 3306 -D Datenbank1
mysql -h localhost -u Benutzername2 -p -P 3307 -D Datenbank2
Zusammenfassung
Dieser Artikel stellt vor, wie um mehrere MySQL-Instanzen auf demselben Server zu installieren, einschließlich der Installation basierend auf Binärpaketen und der Installation basierend auf Docker-Containern. Durch die rationelle Verwendung mehrerer MySQL-Instanzen können unterschiedliche Anwendungen und Szenarien besser unterstützt und die Leistung und Zuverlässigkeit der Datenbank verbessert werden.
Das obige ist der detaillierte Inhalt vonSo installieren Sie mehrere MySQL-Instanzen auf demselben Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!