Heim > Datenbank > MySQL-Tutorial > Hauptteil

Ausführliche Erläuterung der Bereitstellung von mysqld_multi auf einem einzelnen Computer

php中世界最好的语言
Freigeben: 2018-03-23 17:08:19
Original
2066 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Bereitstellung von mysqld_multi auf einer einzelnen Maschine ausführlich erläutern. Was sind die Vorsichtsmaßnahmen für die Bereitstellung einer einzelnen Maschine auf mysqld_multi?

Vorwort

Jeder sollte erlebt haben, dass mit der Entwicklung der Hardwareebene Multi-Core-Linux-Systeme und MySQL zu einem gemeinsamen Trend geworden sind Ein einzelner Prozess verfügt über mehrere Threads, daher ist die Auslastung mehrerer Prozesse nicht sehr hoch. Obwohl sich in dieser Hinsicht viele Verbesserungen ergeben haben, wurden noch nicht 100 % erreicht. MySQL verfügt über eigene Ergänzungen, d. h. es können mehrere Instanzen bereitgestellt werden, eine Instanz pro Port.

mysqld_multi wurde entwickelt, um mehrere mysqld-Prozesse zu verwalten, die auf demselben Computer ausgeführt werden, unterschiedliche Socket-Dateien verwenden und unterschiedliche Ports überwachen. mysqld_multi kann diese mysqld-Prozesse stapelweise starten, herunterfahren oder ihren Status melden.

Im Folgenden gibt es nicht viel zu sagen, werfen wir einen Blick auf die ausführliche Einführung.

1. MySQL-KompilierungInstallation:

cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 
tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql
useradd mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
Nach dem Login kopieren

2. Vorbereitung zuerst Instanzen 3307

2.1 Verzeichnis erstellen:

mkdir /usr/local/mysql3307
chown -R mysql.mysql /usr/local/mysql3307/
mkdir -p /data/mysql3307
chown -R mysql.mysql /data/mysql3307
mkdir -p /home/data/mysql3307/binlog
chown -R mysql.mysql /home/data/mysql3307
Nach dem Login kopieren

2.2 Konfigurationsdatei

[root@zhdya01 ~]# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
log =/var/log/mysqld_multi.log
[mysqld1]
socket = /usr/local/mysql3307/mysql.sock
port = 3307
pid-file = /usr/local/mysql3307/mysql.pid
datadir = /data/mysql3307
log_bin=/home/data/mysql3307/binlog
server-id = 1
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0
Nach dem Login kopieren

2.3 Initialisieren Sie die Datenbank

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3307
Nach dem Login kopieren

3. Bereiten Sie die zweite Multiinstanz 3308 vor

3.1 Verzeichnis erstellen:

mkdir /usr/local/mysql3308
chown -R mysql.mysql /usr/local/mysql3308/
mkdir -p /data/mysql3308
chown -R mysql.mysql /data/mysql3308
mkdir -p /home/data/mysql3308/binlog
chown -R mysql.mysql /home/data/mysql3308
Nach dem Login kopieren

3.2 Konfigurationsdatei

[root@zhdya01 ~]# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
log =/var/log/mysqld_multi.log
[mysqld1]
socket = /usr/local/mysql3307/mysql.sock
port = 3307
pid-file = /usr/local/mysql3307/mysql.pid
datadir = /data/mysql3307
log_bin=/home/data/mysql3307/binlog
server-id = 1
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0
[mysqld2]
socket = /usr/local/mysql3308/mysql.sock
port = 3308
pid-file = /usr/local/mysql3308/mysql.pid
datadir = /data/mysql3308
log_bin=/home/data/mysql3308/binlog
server-id = 2
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0
Nach dem Login kopieren

3.3 Datenbank initialisieren

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3308
Nach dem Login kopieren

4. Starten Sie mehrere Instanzen

/etc/init.d/mysqld start
mysqld_multi --defaults-extra-file=/etc/my.cnf start 1,2
[root@zhdya01 bin]# !net
netstat -lntp -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address  Foreign Address  State PID/Program name 
tcp 0 0 0.0.0.0:22  0.0.0.0:*  LISTEN 1241/sshd  
tcp 0 0 127.0.0.1:25  0.0.0.0:*  LISTEN 2087/master  
tcp6 0 0 :::3306   :::*   LISTEN 4406/mysqld  
tcp6 0 0 :::3307   :::*   LISTEN 4197/mysqld  
tcp6 0 0 :::3308   :::*   LISTEN 3359/mysqld  
tcp6 0 0 :::8080   :::*   LISTEN 2222/java  
tcp6 0 0 :::22   :::*   LISTEN 1241/sshd  
tcp6 0 0 ::1:25   :::*   LISTEN 2087/master
Nach dem Login kopieren

5. Überprüfen Sie den Startstatus

[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
Nach dem Login kopieren

6. Stoppen Sie mehrere Instanzen

[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/my.cnf stop 1,2
[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running
Nach dem Login kopieren

7. Melden Sie sich jeweils bei MySQL-Instanzen an

[root@zhdya01 bin]# mysql --socket=/usr/local/mysql3307/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Nach dem Login kopieren

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln die chinesische PHP-Website!

Empfohlene Lektüre:

Wie man verschiedene Datenbanken mit einer SQL-Anweisung abfragt

Wie man Tabellen in Bootstrap bedient

Versprechen Sie einen vereinfachten Rückruf des Miniprogramms

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Bereitstellung von mysqld_multi auf einem einzelnen Computer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage