MySQL Multi-Instance-Bereitstellungs- und Installationshandbuch unter Linux

MySQL Multi-Instance-Bereitstellungs- und Installationshandbuch unter Linux

Was ist MySQL Multi-Instance

  • Einfach ausgedrückt bedeutet MySQL Multi-Instance, dass auf einem Server gleichzeitig mehrere verschiedene Service-Ports (3306, 3307) geöffnet werden und mehrere MySQL-Serviceprozesse gleichzeitig ausgeführt werden. Diese Serviceprozesse stellen Dienste über verschiedene Sockets bereit, die auf verschiedenen Service-Ports lauschen.
  • Diese mehreren MySQL-Instanzen teilen sich einen Satz von MySQL-Installationsprogrammen und verwenden unterschiedliche my.cnf-Konfigurationsdateien (kann auch identisch sein), Startprogramme (können auch identisch sein) und Datendateien. Bei der Bereitstellung von Diensten scheinen mehrere MySQL-Instanzen logisch unabhängig voneinander zu sein und erhalten basierend auf den entsprechenden Einstellungen in der Konfigurationsdatei die entsprechende Menge an Hardwareressourcen vom Server.
  • Beispielsweise entsprechen mehrere MySQL-Instanzen mehreren Schlafzimmern in einem Haus. Jede Instanz kann als Schlafzimmer betrachtet werden, und der gesamte Server ist ein Haus. Die Hardwareressourcen (CPU, Arbeitsspeicher, Festplatte) und Softwareressourcen (CentOS-Betriebssystem) des Servers können als Badezimmer und Wohnzimmer des Hauses betrachtet werden, die die öffentlichen Ressourcen des Hauses sind.

Vor- und Nachteile mehrerer MySQL-Instanzen:

1. Serverressourcen effektiv nutzen: Wenn ein einzelner Server über freie Ressourcen verfügt, können Sie die verbleibenden Ressourcen voll ausnutzen, um weitere MySQL-Instanzen zu erstellen und mehr Dienste bereitzustellen. 2. Serverressourcen sparen: Wenn ein Unternehmen knapp bei Kasse ist, aber mehrere Datenbanken benötigt und jede möglichst unabhängig voneinander Dienste bereitstellen muss oder eine Master-Slave-Synchronisierung erfordert, sind mehrere MySQL-Instanzen ideal.

3. Problem der Ressourcenkonkurrenz: Wenn eine Serviceinstanz eine hohe Parallelität oder langsame Abfragen aufweist, verbraucht die gesamte Instanz mehr Speicher-, CPU-, Festplatten- und IO-Ressourcen, was zu einer Verschlechterung der Qualität der von anderen Instanzen auf dem Server bereitgestellten Dienste führt. Dies entspricht dem Fall, wenn Personen in verschiedenen Schlafzimmern (MySQL-Instanzen) eines Hauses auf die Toilette müssen (Hardware-CPU-, Speicher- und Festplatten-IO-Ressourcen), eine Person die Toilette besetzt und alle anderen warten müssen.

MySQL-Installationshandbuch für mehrere Instanzen:

Weitere Einzelheiten finden Sie auf der offiziellen Website (https://dev.mysql.com/doc/refman/5.7/en/installing.html).

  • Es gibt viele Möglichkeiten, MySQL zu installieren, z. B. die Binärinstallation, die Installation durch Quellcode-Kompilierung und die Yum-Installation.
  • Der Yum-Installationspfad ist der Standardpfad und die Installation ist relativ einfach.
  • Der Prozess der Installation und Kompilierung des Quellcodes ist relativ langwierig. Wenn der Quellcode nicht geändert wird und eine höhere Version von MySQL erforderlich ist;

Bereiten Sie die Umgebung vor.

[root@mysql-multi ~]# cat /etc/redhat-release
CentOS Linux Version 7.5.1804 (Core)
[root@mysql-multi ~]# uname -r
3.10.0-862.el7.x86_64
[root@mysql-multi ~]# Hostname -I
172.16.70.37
[root@mysql-multi ~]# getenforce
Permissiv
[root@mysql-multi ~]# systemctl status firewalld
● firewalld.service – Firewalld – dynamischer Firewall-Daemon
   Geladen: geladen (/usr/lib/systemd/system/firewalld.service; deaktiviert; Vendor-Vorgabe: aktiviert)
   Aktiv: inaktiv (tot)
     Dokumentation: man:firewalld(1)

23. Jul 14:36:11 mysql-multi systemd[1]: Firewalld wird gestartet - dynamischer Firewall-Daemon...
23. Jul 14:36:12 mysql-multi systemd[1]: Firewalld - dynamischer Firewall-Daemon - gestartet.
23. Jul 15:09:10 mysql-multi systemd[1]: Firewalld wird gestoppt - dynamischer Firewall-Daemon...
23. Jul 15:09:11 mysql-multi systemd[1]: Firewalld - dynamischer Firewall-Daemon - wurde gestoppt.

# In der CentOS 7-Version des Systems ist MariaDB standardmäßig installiert, daher müssen Sie es zuerst bereinigen [root@mysql-multi ~]# rpm -qa |grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
oder [root@mysql-multi ~]# yum list installiert | grep mariadb
mariadb-libs.x86_64 1:5.5.56-2.el7 @anaconda
# Deinstallieren Sie [root@mysql-multi ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
Oder [root@mysql-multi ~]# yum -y remove mariadb-libs.x86_64

Installieren und Konfigurieren mehrerer MySQL-Instanzen

Die Installationsmethode für die YUM-Quelle lautet wie folgt:

Laden Sie das RPM-Paket von der offiziellen Website herunter: https://downloads.mysql.com/archives/community, und wählen Sie den Download der entsprechenden Version aus.

# Laden Sie das RPM-Paket auf den Server hoch [root@mysql-multi ~]# yum install libaio lrzsz tree net-tools -y
[root@mysql-multi ~]# ls
mysql-community-client-5.7.34-1.el7.x86_64.rpm mysql-community-libs-5.7.34-1.el7.x86_64.rpm
mysql-community-common-5.7.34-1.el7.x86_64.rpm mysql-community-server-5.7.34-1.el7.x86_64.rpm

# Die Installationsvorgänge müssen in der Reihenfolge ausgeführt werden [root@mysql-multi ~]# rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
[root@mysql-multi ~]# rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
[root@mysql-multi ~]# rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
[root@mysql-multi ~]# rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

[root@mysql-multi ~]# yum-Liste installiert | grep mysql
mysql-community-client.x86_64 5.7.34-1.el7 installiert
mysql-community-common.x86_64 5.7.34-1.el7 installiert
mysql-community-libs.x86_64 5.7.34-1.el7 installiert
mysql-community-server.x86_64 5.7.34-1.el7 installiert

# Instanzverzeichnis erstellen [root@mysql-multi ~]# mkdir -p /data/app/mysql/{3306,3307}
[root@mysql-multi ~]# mkdir -p /data/app/mysql/3306/{data,binlog,logs}
[root@mysql-multi ~]# mkdir -p /data/app/mysql/3307/{data,binlog,logs}
[root@mysql-multi ~]# Baum /data/app/mysql/
/Daten/App/MySQL/
├── 3306
│ ├── Binlog
│ ├── Daten
│ └── Protokolle
└── 3307
    ├── Binlog
    ├── Daten
    └── Protokolle

# Legen Sie die Verzeichnisbesitzergruppe fest [root@mysql-multi ~]# chown -R mysql:mysql /data/app/mysql
[root@mysql-multi ~]# ls -ld /data/app/mysql
drwxr-xr-x. 4 mysql mysql 30. Juli 29 18:39 /Daten/App/mysql
[root@mysql-multi ~]# ls -ld /data/app
drwxr-xr-x. 3 root root 19 Jul 29 18:39 /data/app

# Fügen Sie eine neue Konfigurationsdatei my3306.cnf hinzu
[root@mysql-multi ~]# mv /etc/my.cnf /etc/my.cnf_bak
[root@mysql-multi ~]# cat /etc/my3306.cnf
[mysqld]
Benutzer = MySQL
Port = 3306
Server-ID = 3306
Datenverzeichnis = /data/app/mysql/3306/data
Socket = /data/app/mysql/3306/mysql3306.sock
symbolische Links = 0
log-fehler = /data/app/mysql/3306/logs/mysqld3306.log
pid-Datei = /data/app/mysql/3306/mysqld3306.pid

# Fügen Sie eine neue Konfigurationsdatei my3307.cnf hinzu
[root@mysql-multi ~]# cp /etc/my3306.cnf /etc/my3307.cnf
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /etc/my3307.cnf
[root@mysql-multi ~]# cat /etc/my3307.cnf
[mysqld]
Benutzer = MySQL
Port = 3307
Server-ID = 3307
Datenverzeichnis = /data/app/mysql/3307/data
Socket = /data/app/mysql/3307/mysql3307.sock
symbolische Links = 0
log-fehler = /data/app/mysql/3307/logs/mysqld3307.log
pid-Datei = /data/app/mysql/3307/mysqld3307.pid

# Sichern Sie die MySQL-Startdienstdatei [root@mysql-multi ~]# mv /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld.service_bak
# Startdatei mysqld3306.service hinzufügen [root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3306.service
[Einheit]
Beschreibung=MySQL Server
Dokumentation=man:mysqld(8)
Dokumentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
Nach=Netzwerk.Ziel
Nach=syslog.target
[Installieren]
WantedBy=Mehrbenutzer.Ziel
[Service]
Benutzer=mysql
Gruppe=mysql
Typ=Forking
PIDFile=/data/app/mysql/3306/mysqld3306.pid
ZeitüberschreitungSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3306 3306
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid $MYSQLD_OPTS
Umgebungsdatei=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Neustart=bei Fehler
RestartPreventExitStatus=1
PrivateTmp=false

# Startdatei mysqld3307.service hinzufügen [root@mysql-multi ~]# cp /usr/lib/systemd/system/mysqld3306.service /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3307.service
[Einheit]
Beschreibung=MySQL Server
Dokumentation=man:mysqld(8)
Dokumentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
Nach=Netzwerk.Ziel
Nach=syslog.target
[Installieren]
WantedBy=Mehrbenutzer.Ziel
[Service]
Benutzer=mysql
Gruppe=mysql
Typ=Forking
PIDFile=/data/app/mysql/3307/mysqld3307.pid
ZeitüberschreitungSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3307 3307
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid $MYSQLD_OPTS
Umgebungsdatei=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Neustart=bei Fehler
RestartPreventExitStatus=1
PrivateTmp=false

# Mehrere Instanzen initialisieren 3306, 3307
[root@mysql-multi ~]# mysqld --defaults-file=/etc/my3306.cnf --initialize --user=mysql --datadir=/data/app/mysql/3306/data
[root@mysql-multi ~]# mysqld --defaults-file=/etc/my3307.cnf --initialize --user=mysql --datadir=/data/app/mysql/3307/data

# Mehrere Instanzen starten 3306, 3307
[root@mysql-multi ~]# systemctl start mysqld3306
[root@mysql-multi ~]# systemctl start mysqld3307
[root@mysql-multi ~]# netstat -nutpl | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 128270/mysqld
tcp6 0 0 :::3307 :::* LISTEN 128328/mysqld
[root@mysql-multi ~]# ps -ef | grep mysql
mysql 128270 1 1 11:43 ? 00:00:00 /usr/sbin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid
mysql 128328 1 1 11:43 ? 00:00:00 /usr/sbin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid
root 128373 949 0 11:43 pts/0 00:00:00 grep --color=auto mysql

================================================ 【Eine weitere MySQL-Instanz hinzufügen】==================================================================
# Erstellen Sie ein Verzeichnis und legen Sie den Eigentümer und die Gruppe fest [root@mysql-multi ~]# mkdir -p /data/app/mysql/3308/{data,binlog,logs}
[root@mysql-multi ~]# chown -R mysql:mysql /data/app/mysql/3308
[root@mysql-multi ~]# ls -ld /data/app/mysql/3308
drwxr-xr-x. 5 mysql mysql 44 5. Aug. 14:45 /data/app/mysql/3308

# Fügen Sie eine neue Konfigurationsdatei my3308.cnf hinzu
[root@mysql-multi ~]# cp /etc/my3306.cnf /etc/my3308.cnf
[root@mysql-multi ~]# sed -i 's/3306/3308/g' /etc/my3308.cnf
[root@mysql-multi ~]# cat /etc/my3308.cnf
[mysqld]
Benutzer = MySQL
Port = 3308
Server-ID = 3308
Datenverzeichnis = /data/app/mysql/3308/data
Socket = /data/app/mysql/3308/mysql3308.sock
symbolische Links = 0
log-fehler = /data/app/mysql/3308/logs/mysqld3308.log
pid-Datei = /data/app/mysql/3308/mysqld3308.pid

# Startdatei mysqld3308.service hinzufügen [root@mysql-multi ~]# cp /usr/lib/systemd/system/mysqld3306.service /usr/lib/systemd/system/mysqld3308.service
[root@mysql-multi ~]# sed -i 's/3306/3308/g' /usr/lib/systemd/system/mysqld3308.service
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3308.service
[Einheit]
Beschreibung=MySQL Server 3308
Dokumentation=man:mysqld(8)
Dokumentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
Nach=Netzwerk.Ziel
Nach=syslog.target
[Installieren]
WantedBy=Mehrbenutzer.Ziel
[Service]
Benutzer=mysql
Gruppe=mysql
Typ=Forking
PIDFile=/data/app/mysql/3308/mysqld3308.pid
ZeitüberschreitungSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3308 3308
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3308.cnf --daemonize --pid-file=/data/app/mysql/3308/mysqld3308.pid $MYSQLD_OPTS
Umgebungsdatei=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Neustart=bei Fehler
RestartPreventExitStatus=1
PrivateTmp=false

# Mehrere Instanzen initialisieren 3308
[root@mysql-multi ~]# mysqld --defaults-file=/etc/my3308.cnf --initialize --user=mysql --datadir=/data/app/mysql/3308/data

# Mehrere Instanzen starten 3308
[root@mysql-multi ~]# systemctl start mysqld3308
[root@mysql-multi ~]# netstat -nutpl | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 5062/mysqld
tcp6 0 0 :::3307 :::* LISTEN 5098/mysqld
tcp6 0 0 :::3308 :::* LISTEN 5189/mysqld
[root@mysql-multi ~]# ps -ef |grep mysql
mysql 5062 1 0 14:43 ? 00:00:01 /usr/sbin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid
mysql 5098 1 0 14:44 ? 00:00:01 /usr/sbin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid
mysql 5189 1 4 14:57 ? 00:00:01 /usr/sbin/mysqld --defaults-file=/etc/my3308.cnf --daemonize --pid-file=/data/app/mysql/3308/mysqld3308.pid

Die Methode zur Kompilierung und Installation des Quellcodes ist wie folgt:

MySQL-Download: https://downloads.mysql.com/archives/community

Boost-Download: https://sourceforge.net/projects/boost/files/boost/1.59.0

Mehrere MySQL-Instanzen: https://dev.mysql.com/doc/refman/5.7/en/multiple-servers.html

# Abhängigkeitspakete und Kompilierungssoftware [root@mysql-multi ~]# yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel libaio-devel wget lrzsz tree
[root@mysql-multi ~]# rpm -qa ncurses-devel libaio-devel
libaio-devel-0.3.109-13.el7.x86_64
ncurses-devel-5.9-14.20130511.el7_4.x86_64

# Laden Sie das Quellcodepaket herunter, laden Sie es hoch, entpacken Sie es, kompilieren und installieren Sie es (vorzugsweise mit Speicher > 8 GB)
ls[root@mysql-multi ~]# ls
boost_1_59_0.tar.gz mysql-boost-5.7.34.tar.gz
[root@mysql-multi ~]# tar xf boost_1_59_0.tar.gz
[root@mysql-multi ~]# tar xf mysql-boost-5.7.34.tar.gz
[root@mysql-multi ~]# ls
boost_1_59_0 boost_1_59_0.tar.gz mysql-5.7.34 mysql-boost-5.7.34.tar.gz
[root@mysql-multi ~]# cd mysql-5.7.34/
[root@mysql-multi mysql-5.7.34]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 \
-DENABLED_LOCAL_INFILE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/root/boost_1_59_0 -DEXTRA_CHARSETS=alle
......
......Wenn am Ende Folgendes angezeigt wird, ist es abgeschlossen-- CMAKE_SHARED_LINKER_FLAGS
-- Konfiguration abgeschlossen
-- Generierung abgeschlossen
-- Build-Dateien wurden geschrieben nach: /root/mysql-5.7.34

Beschreibung der Option:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # MySQL-Installationsverzeichnis -DDEFAULT_CHARSET=utf8mb4 # Standardzeichenkodierung der Datenbank -DENABLED_LOCAL_INFILE=1 # Datenimport aus dieser Datei zulassen -DWITH_SYSTEMD=1 # Systemd-Skript bereitstellen -DWITH_BOOST=/root/boost_1_59_0 # Quellpfad für Boost -DEXTRA_CHARSETS=all # Alle Zeichensätze installieren [root@mysql-multi mysql-5.7.34]#make -j 4 && make install # make -j 4 bedeutet gleichzeitiges Kompilieren mit CPU4 Kernen: cat /proc/cpuinfo|grep "processor"|wc -l
......
......Wenn am Ende folgender Inhalt angezeigt wird, ist es abgeschlossen-- Aktuell: /usr/local/app/mysql/mysql-test/mysql-test-run
-- Installieren: /usr/local/app/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Aktuell: /usr/local/app/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Installieren: /usr/local/app/mysql/mysql-test/lib/My/SafeProcess/Base.pm
-- Installieren: /usr/local/app/mysql/support-files/mysqld_multi.server
-- Installieren: /usr/local/app/mysql/support-files/mysql-log-rotate
-- Installieren: /usr/local/app/mysql/support-files/magic
-- Installieren: /usr/local/app/mysql/share/aclocal/mysql.m4
-- Installieren: /usr/local/app/mysql/support-files/mysql.server

# Instanzverzeichnis erstellen [root@mysql-multi ~]# mkdir -p /data/app/mysql/{3306,3307}/{data,binlog,logs}
[root@mysql-multi ~]# Baum /data/app/mysql
/Daten/App/MySQL
├── 3306
│ ├── Binlog
│ ├── Daten
│ └── Protokolle
└── 3307
    ├── Binlog
    ├── Daten
    └── Protokolle

# Erstellen Sie einen Benutzer und legen Sie die Verzeichnisbesitzergruppe fest [root@mysql-multi ~]# useradd -M -r -s /sbin/nologin mysql
[root@mysql-multi ~]# chown -R mysql:mysql /data/app/mysql
[root@mysql-multi ~]# ls -ld /data/app/mysql
drwxr-xr-x. 4 mysql mysql 30. Aug. 5 12:17 /Daten/App/mysql

# Fügen Sie eine neue Konfigurationsdatei my3306.cnf hinzu
[root@mysql-multi ~]# mv /etc/my.cnf /etc/my.cnf_bak
[root@mysql-multi ~]# cat /etc/my3306.cnf
[mysqld]
Benutzer = MySQL
Port = 3306
Server-ID = 3306
basedir = /usr/local/mysql
Datenverzeichnis = /data/app/mysql/3306/data
Socket = /data/app/mysql/3306/mysql3306.sock
symbolische Links = 0
log-fehler = /data/app/mysql/3306/logs/mysqld3306.log
pid-Datei = /data/app/mysql/3306/mysqld3306.pid
Zeichensatzserver = utf8
Standard-Speicher-Engine = INNODB

# Fügen Sie eine neue Konfigurationsdatei my3307.cnf hinzu
[root@mysql-multi ~]# cp /etc/my3306.cnf /etc/my3307.cnf
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /etc/my3307.cnf
[root@mysql-multi ~]# cat /etc/my3307.cnf
[mysqld]
Benutzer = MySQL
Port = 3307
Server-ID = 3307
basedir = /usr/local/mysql
Datenverzeichnis = /data/app/mysql/3307/data
Socket = /data/app/mysql/3307/mysql3307.sock
symbolische Links = 0
log-fehler = /data/app/mysql/3307/logs/mysqld3307.log
pid-Datei = /data/app/mysql/3307/mysqld3307.pid
Zeichensatzserver = utf8
Standard-Speicher-Engine = INNODB

# Standardisierungsvorgänge nach der Installation (Einstellen von Umgebungsvariablen, Ausgeben von Header- und Bibliotheksdateien, Einrichten von Man-Pfaden)
[root@mysql-multi ~]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile.d/mysql.sh
[root@mysql-multi ~]# chmod +x /etc/profile.d/mysql.sh
[root@mysql-multi ~]# Quelle /etc/profile.d/mysql.sh
[root@mysql-multi ~]# echo "MANPATH /usr/local/mysql/man" >> /etc/man.config
[root@mysql-multi ~]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@mysql-multi ~]# ldconfig
[root@mysql-multi ~]# ln -s /usr/local/mysql/include /usr/include/mysql

# Instanzen 3306 und 3307 im systemd-Modus hinzufügen [root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3306.service
[Einheit]
Beschreibung=MySQL Server
Dokumentation=man:mysqld(8)
Dokumentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
Nach=Netzwerk.Ziel
Nach=syslog.target
[Installieren]
WantedBy=Mehrbenutzer.Ziel
[Service]
Benutzer=mysql
Gruppe=mysql
Typ=Forking
PIDFile=/data/app/mysql/3306/mysqld3306.pid
ZeitüberschreitungSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3306 3306
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid $MYSQLD_OPTS
Umgebungsdatei=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Neustart=bei Fehler
RestartPreventExitStatus=1
PrivateTmp=false

[root@mysql-multi ~]# cp /usr/lib/systemd/system/mysqld3306.service /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3307.service
[Einheit]
Beschreibung=MySQL Server
Dokumentation=man:mysqld(8)
Dokumentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
Nach=Netzwerk.Ziel
Nach=syslog.target
[Installieren]
WantedBy=Mehrbenutzer.Ziel
[Service]
Benutzer=mysql
Gruppe=mysql
Typ=Forking
PIDFile=/data/app/mysql/3307/mysqld3307.pid
ZeitüberschreitungSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3307 3307
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid $MYSQLD_OPTS
Umgebungsdatei=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Neustart=bei Fehler
RestartPreventExitStatus=1
PrivateTmp=false

# Instanzen 3306, 3307 initialisieren
[root@mysql-multi ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --initialize --basedir=/usr/local/mysql --user=mysql --datadir=/data/app/mysql/3306/data
[root@mysql-multi ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --initialize --basedir=/usr/local/mysql --user=mysql --datadir=/data/app/mysql/3307/data

# Instanz 3306, 3307 Dienste starten (Start|Stopp|Neustart|Status)
[root@mysql-multi ~]# systemctl start mysqld3306
[root@mysql-multi ~]# systemctl start mysqld3307
[root@mysql-multi ~]# netstat -nuptl | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 27165/mysqld
tcp6 0 0 :::3307 :::* LISTEN 27201/mysqld
[root@mysql-multi ~]# ps -ef | grep mysql
mysql 27165 1 2 17:03 ? 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid
mysql 27201 1 2 17:03 ? 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid

Ändern Sie das Passwort der MySQL-Instanz und testen Sie die Anmeldung.

# Holen Sie sich das anfängliche Passwort der Instanz [root@mysql-multi ~]# grep 'temporäres Passwort' /data/app/mysql/3306/logs/mysqld3306.log
2021-08-05T08:52:37.904630Z 1 [Hinweis] Ein temporäres Passwort wird für root@localhost generiert: ,&YrsLryq3Ll

[root@mysql-multi ~]# grep 'temporäres Passwort' /data/app/mysql/3307/logs/mysqld3307.log
2021-08-05T08:52:48.082526Z 1 [Hinweis] Ein temporäres Passwort wird für root@localhost generiert: OvxKu,su=4O1

# Ändern Sie das Instanzkennwort [root@mysql-multi ~]# mysqladmin -p -S /data/app/mysql/3306/mysql3306.sock password
Passwort eingeben: # Geben Sie das ursprüngliche Passwort ein Neues Passwort: # Geben Sie das neue Passwort ein 123456
Neues Passwort bestätigen: # Geben Sie das neue Passwort 123456 erneut ein

--------------------------------------------------------------------------------------------------
# oder Shell> mysql -uroot -p /data/app/mysql/3306/mysql3306.sock
mysql> ALTER USER 'root'@'localhost' IDENTIFIZIERT DURCH '123456';
--------------------------------------------------------------------------------------------------

[root@mysql-multi ~]# mysqladmin -p -S /data/app/mysql/3306/mysql3307.sock Passwort
Passwort eingeben: # Geben Sie das ursprüngliche Passwort ein Neues Passwort: # Geben Sie das neue Passwort 654321 ein
Neues Passwort bestätigen: # Geben Sie das neue Passwort 654321 erneut ein

# Testanmeldung [root@mysql-multi ~]# mysql -uroot -p -S /data/app/mysql/3306/mysql3306.sock
Passwort eingeben: # Passwort eingeben 123456
[root@mysql-multi ~]# mysql -uroot -p -S /data/app/mysql/3307/mysql3307.sock
Passwort eingeben: # Passwort eingeben 654321

# Stoppen Sie die Instanz [root@mysql-multi ~]# mysqladmin -uroot -p -S /data/app/mysql/3306/mysql3306.sock shutdown
Passwort eingeben: # Passwort eingeben 123456
[root@mysql-multi ~]# mysqladmin -uroot -p -S /data/app/mysql/3307/mysql3307.sock herunterfahren
Passwort eingeben: # Passwort eingeben 654321

An diesem Punkt wurden mehrere MySQL-Instanzen implementiert!

Dies ist das Ende dieses Artikels über MySQL-Mehrinstanzbereitstellungsdatensätze unter Linux. Weitere relevante Inhalte zur MySQL-Mehrinstanzbereitstellung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Tutorial zur Installation der mysql5.7.36-Datenbank in einer Linux-Umgebung
  • Einführung in den Installationsprozess von MySQL 8.0 in einer Linux-Umgebung
  • Detaillierte Schritte zur Installation von MySQL 8.0.27 in Linux 7.6-Binärdateien
  • Tutorial zur Installation von MySQL unter Linux
  • MySQL 8.0.25 Installations- und Konfigurations-Tutorial unter Linux
  • mysql8.0.23 Linux (Centos7) Installation vollständiges und ausführliches Tutorial
  • Detailliertes Tutorial zur Installation einer MySQL-Datenbank in einer Linux-Umgebung
  • Detailliertes Tutorial zur Installation von mysql-8.0.20 unter Linux
  • Diagramm des Tutorials zur schnellen Installation und Konfiguration des Linux-Systems MySQL8.0.19
  • Tutorial zur Installation von MySQL8 unter Linux CentOS7
  • Installieren Sie die MySQL-Datenbank in einer Linux-Umgebung

<<:  Detaillierte Erklärung zum Erkennen und Verhindern von JavaScript-Endlosschleifen

>>:  Detailliertes Beispiel für die Verwendung von CSS zur Verschönerung von HTML-Formular-Steuerelementen (Formularverschönerung)

Artikel empfehlen

Tutorial zu XHTML-Webseiten

<br />Dieser Artikel soll Anfängern hauptsäc...

Vue implementiert die Benutzeranmeldungsumschaltung

In diesem Artikelbeispiel wird der spezifische Co...

Lösung - BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: Unzureichende Berechtigungen

1) Geben Sie den Ordnerpfad ein, in dem die JDK-D...

Vue realisiert den Gleitkreuzeffekt des Balles

In diesem Artikelbeispiel wird der spezifische Co...

Tipps zur Optimierung von CSS-Schattenanimationen

Diese Technik stammt aus diesem Artikel - So anim...

Implementierung der vertikalen Zentrierung mit unbekannter Höhe in CSS

Dieser Artikel stellt hauptsächlich die Implement...