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

MySQL-Anweisungsanordnung und zusammenfassende Einführung

SQL-Anweisungen (Structured Query Language), also...

Ausführliche Erklärung der Modi und Umgebungsvariablen in Vue CLI

Vorwort Bei der Entwicklung tatsächlicher Projekt...

Bidirektionale verknüpfte Liste der JavaScript-Datenstruktur

Eine einfach verkettete Liste kann nur vom Anfang...

Sprechen Sie über wichtige Unterverzeichnisprobleme im Linux-System

/etc/fstab Partitionen/Festplatten automatisch mo...

Verwendung des if-Urteils in HTML

Während der Django-Webentwicklung wird beim Schre...

Tutorial zur Installation von MySQL 8.0.11 mit RPM unter Linux (CentOS7)

Inhaltsverzeichnis 1. Installationsvorbereitung 1...

So rufen Sie das Kennwort für MySQL 8.0.22 auf dem Mac ab

Neueste Version von MySQL 8.0.22 zur Kennwortwied...

Einführung in die Farbabstimmung von Königsblau für Webdesign

Klassische Farbkombinationen vermitteln Kraft und ...

Eine kurze Analyse kontrollierter und unkontrollierter Komponenten in React

Inhaltsverzeichnis Unkontrollierte Komponenten Ko...

Zwei Möglichkeiten zum korrekten Bereinigen von MySQL-Binlog-Protokollen

mysql bereinigt Binlog-Protokolle korrekt Vorwort...