Detailliertes Tutorial zum Kompilieren und Installieren von mysql8.0.29 in der LNMP-Umgebung von CentOS8

Detailliertes Tutorial zum Kompilieren und Installieren von mysql8.0.29 in der LNMP-Umgebung von CentOS8

1. Voraussetzungen

Da ich es schon mehrmals installiert habe, werde ich den Fehler nicht mehr beschreiben. Es ist etwas verwirrend! ! ! Lösen Sie entsprechende Abhängigkeiten und Fehler vorab direkt vor Ort.

1. Erforderliches Quellcodepaket

mysql-8.0.19.tar.gz 
boost_1_70_0.tar.gz //Installieren Sie die für mysql-8 erforderliche Boost-Version rpcsvc-proto-1.4.tar.gz //Das für den späteren Fehler erforderliche Quellcodepaket mysql-8.0.19 Download-Adresse: http://mirrors.sohu.com/mysql/
Downloadadresse für boost_1_70_0: https://dl.bintray.com/boostorg/release/1.70.0/source/
Downloadadresse für rpcsvc-proto-1.4: https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/

2. Abhängigkeiten lösen

[14:41:21 root@wangzhike ~]#yum install -y cmake ncurses-devel

3. Speicherort

Speicherort des Software-Quellcodepakets: /usr/local/src
Kompilierung und Installationsort des Quellpakets: /usr/local/Softwarename

2. Kompilieren und installieren Sie mysql-8.0.19

1. Quellcodepaket hochladen

boost_1_70_0.tar.gz		
mysql-8.0.19.tar.gz		
rpcsvc-proto-1.4.tar.gz 

Bildbeschreibung hier einfügen

2. Lösen Sie rpcsvc-proto-1.4

1) Dekompression

[17:05:14 root@wangzhike software]#tar -zxf rpcsvc-proto-1.4.tar.gz -C /usr/local/src/

2) Installation in einem Schritt

[17:09:48 root@wangzhike rpcsvc-proto-1.4]#./konfigurieren && make && make install

3. Lösen Sie boost_1_70_0

[17:13:48 root@wangzhike~]# mkdir -p /usr/local/boost
[17:14:05 root@wangzhike~]# cd /usr/local/src
[17:15:02 root@wangzhike src]#cp /software/boost_1_70_0.tar.gz /usr/local/boost/
[17:26:22 root@wangzhike boost]#tar xf boost_1_70_0.tar.gz
////Nur in das Speicherverzeichnis /usr/local/src/ hochladen und in das aktuelle Boost-Verzeichnis entpacken

4. Erstellen Sie MySQL-Benutzer und -Gruppe

[17:27:46 root@wangzhike ~]#groupadd mysql
[17:28:10 root@wangzhike ~]#useradd -g mysql mysql -s /bin/false
####Erstellen Sie den Benutzer mysql und fügen Sie ihn der mysql-Gruppe hinzu. Erlauben Sie mysql-Benutzern nicht, sich direkt beim System anzumelden [17:28:11 root@wangzhike ~]#mkdir -p /data/mysql 
####Erstellen Sie das MySQL-Datenbankspeicherverzeichnis[17:29:13 root@wangzhike ~]#chown -R mysql:mysql /data/mysql 
####Legen Sie die Berechtigungen für das Verzeichnis fest, in dem die MySQL-Datenbank gespeichert ist[17:29:31 root@wangzhike ~]#mkdir -p /usr/local/mysql 
####MySQL-Installationsverzeichnis erstellen

5. Installieren Sie mysql-8.0.19

1) Dekompression

[17:43:24 root@wangzhike software]#tar -zxf mysql-8.0.19.tar.gz -C /usr/local/src/
[17:43:47 root@wangzhike software]#cd /usr/local/src/
[17:43:53 root@wangzhike src]#cd mysql-8.0.19/

2) Installation

[17:47:01 root@wangzhike mysql-8.0.19]#cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/Daten/mysql -DMYSQL_USER=mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=alle \
-DWITH_BOOST=/usr/lokal/boost

Wenn Folgendes eintritt, liegt kein Problem vor

CMake-Warnung: Manuell angegebene Variablen wurden nicht verwendet von
Projekt:

ZUSÄTZLICHE_ZEICHENSÄTZE
INSTALL_DATADIR
MYSQL_USER
MIT_EINGEBETTETEM_SERVER

– Build-Dateien wurden geschrieben nach: /usr/local/src/mysql-8.0.19

Wenn der folgende Fehler bezüglich rpc.h auftritt
Rpc/rpc.h konnte in /usr/include oder /usr/include/tirpc nicht gefunden werden.

Lösung:

[17:45:47 root@wangzhike mysql-8.0.19]#finden / -name rpc.h
/usr/local/src/mysql-8.0.19/extra/libevent/include/event2/rpc.h
/usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/rpc.h

####Kopieren Sie die Datei rpc/rpc.h im Verzeichnis /usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/ nach /usr/include/

wie folgt

[17:52:57 root@wangzhike mysql-8.0.19]#cp -a /usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc /usr/include/

3) Erstellen und installieren

[17:55:20 root@wangzhike mysql-8.0.19]#make -j 3 && installieren
//Wenn der Vorgang zu lange dauert und nicht genügend Speicher vorhanden ist, wird ein Fehler gemeldet

Warte, warte, warte

Wenn der folgende Fehler gemeldet wird, bedeutet dies, dass nicht genügend Speicher vorhanden ist und eine Partition erstellt werden muss.

+: Schwerwiegender Fehler: Abgebrochenes Signal beendete das Programm cc1plus
Kompilierung abgebrochen.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/build.make:154: sql/CMakeFiles/sql_gis.dir/gis/distance_functor.cc.o] Fehler 1
make[2]: *** Warte auf unerledigte Jobs....
make[1]: *** [CMakeFiles/Makefile2:11144: sql/CMakeFiles/sql_gis.dir/all] Fehler 2
make: *** [Makefile:163: all] Fehler 2

Erstellen Sie eine Partition:

[19:58:37 root@wangzhike mysql-8.0.19]#dd wenn=/dev/zero von=/swapfile bs=1k Anzahl=2048000
2048000+0 Datensätze in
2048000+0 Datensätze aus
2097152000 Bytes (2,1 GB, 2,0 GiB) kopiert, 6,07651 s, 345 MB/s
####Holen Sie sich den hinzuzufügenden 2G-SWAP-Dateiblock [20:10:02 root@wangzhike mysql-8.0.19]#mkswap /swapfile
mkswap: /swapfile: unsichere Berechtigungen 0644, 0600 empfohlen.
Einrichten von Swapspace Version 1, Größe = 2 GiB (2097147904 Bytes)
kein Label, UUID=18a4bbb3-75d1-411b-ac0c-c87c63547509
####SWAP-Datei erstellen[20:10:07 root@wangzhike mysql-8.0.19]#swapon /swapfile
swapon: /swapfile: unsichere Berechtigungen 0644, 0600 empfohlen.
####SWAP-Datei aktivieren[20:10:12 root@wangzhike mysql-8.0.19]#swapon -s
Dateiname Typ Größe Verwendet Priorität
/dev/sda2 Partition 2144252 137300 -2
/swapfile Datei 2047996 0 -3
#####Überprüfen Sie, ob die SWAP-Informationen korrekt sind[20:10:19 root@wangzhike mysql-8.0.19]#echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
####Zur fstab-Datei hinzufügen, um automatisch beim Systemstart zu starten

Wenn Sie make -j 3 && make install erneut ausführen, wird der folgende Bildschirm angezeigt und es wird kein Fehler gemeldet

```Schläge
-- Installieren: /usr/local/mysql/man/man1/comp_err.1
-- Installieren: /usr/local/mysql/man/man1/ibd2sdi.1
-- Installieren: /usr/local/mysql/man/man1/innochecksum.1
-- Installieren: /usr/local/mysql/man/man1/lz4_decompress.1
-- Installieren: /usr/local/mysql/man/man1/my_print_defaults.1
-- Installieren: /usr/local/mysql/man/man1/myisam_ftdump.1
-- Installieren: /usr/local/mysql/man/man1/myisamchk.1
-- Installieren: /usr/local/mysql/man/man1/myisamlog.1
-- Installieren: /usr/local/mysql/man/man1/myisampack.1
-- Installieren: /usr/local/mysql/man/man1/mysql.1
-- Installieren: /usr/local/mysql/man/man1/mysql.server.1
-- Installieren: /usr/local/mysql/man/man1/mysql_config.1
-- Installieren: /usr/local/mysql/man/man1/mysql_config_editor.1
-- Installieren: /usr/local/mysql/man/man1/mysql_secure_installation.1
-- Installieren: /usr/local/mysql/man/man1/mysql_ssl_rsa_setup.1
-- Installieren: /usr/local/mysql/man/man1/mysql_tzinfo_to_sql.1
-- Installieren: /usr/local/mysql/man/man1/mysql_upgrade.1
-- Installieren: /usr/local/mysql/man/man1/mysqladmin.1
-- Installieren: /usr/local/mysql/man/man1/mysqlbinlog.1
-- Installieren: /usr/local/mysql/man/man1/mysqlcheck.1
-- Installieren: /usr/local/mysql/man/man1/mysqld_multi.1
-- Installieren: /usr/local/mysql/man/man1/mysqld_safe.1
-- Installieren: /usr/local/mysql/man/man1/mysqldump.1
-- Installieren: /usr/local/mysql/man/man1/mysqldumpslow.1
-- Installieren: /usr/local/mysql/man/man1/mysqlimport.1
-- Installieren: /usr/local/mysql/man/man1/mysqlman.1
-- Installieren: /usr/local/mysql/man/man1/mysqlpump.1
-- Installieren: /usr/local/mysql/man/man1/mysqlshow.1
-- Installieren: /usr/local/mysql/man/man1/mysqlslap.1
-- Installieren: /usr/local/mysql/man/man1/perror.1
-- Installieren: /usr/local/mysql/man/man1/zlib_decompress.1
-- Installieren: /usr/local/mysql/man/man8/mysqld.8
-- Installieren: /usr/local/mysql/man/man1/mysqlrouter.1
-- Installieren: /usr/local/mysql/man/man1/mysqlrouter_passwd.1
-- Installieren: /usr/local/mysql/man/man1/mysqlrouter_plugin_info.1

3. MySQL-Datenbank initialisieren

1. Ändern Sie die MySQL-Verzeichnisberechtigungen

[20:37:59 root@wangzhike mysql-8.0.19]#chown -R mysql:mysql /usr/local/mysql
[20:42:07 root@wangzhike mysql-8.0.19]#chmod -R 755 /usr/local/mysql

2. MySQL initialisieren

[20:45:07 root@wangzhike ~]#cd /usr/local/mysql/
[20:46:43 root@wangzhike mysql]#./bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf8
2020-04-14T12:47:13.718724Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) Initialisierung des Servers läuft als Prozess 9893
2020-04-14T12:47:13.719367Z 0 [Warnung] [MY-013242] [Server] --character-set-server: „utf8“ ist derzeit ein Alias ​​für den Zeichensatz UTF8MB3, wird aber in einer zukünftigen Version ein Alias ​​für UTF8MB4 sein. Bitte erwägen Sie die Verwendung von UTF8MB4, um Eindeutigkeit zu gewährleisten.
2020-04-14T12:47:14.855541Z 5 [Hinweis] [MY-010454] [Server] Ein temporäres Passwort wird für root@localhost generiert: rUG-.8kdw<1f
####MySQL-Systemdatenbank generieren.

3. Ändern Sie die Konfigurationsdatei
MySQL 8.0.x hat standardmäßig keine Konfigurationsdatei, daher erstellen wir selbst eine.

[20:49:41 root@wangzhike mysql]#vi /usr/local/mysql/my.cnf
Fügen Sie den folgenden Inhalt hinzu:
[Kunde]
Port = 3306
socket=/tmp/mysql.sock
[mysqld]
Port = 3306
Benutzer = MySQL
socket=/tmp/mysql.sock
tmpdir = /tmp
Schlüsselpuffergröße = 16 M
max_allowed_package=128M
default_authentication_plugin=mysql_native_password
Open_files_limit = 60000
explizite_Vorgaben_für_Zeitstempel
Server-ID = 1
Zeichensatzserver = utf8
föderiert
max_Verbindungen = 1000
max_connect_errors = 100000
interaktives_Timeout = 86400
Wartezeitüberschreitung = 86400
sync_binlog=0
back_log=100
Standard-Speicher-Engine = InnoDB
log_slave_updates = 1
[mysqldump]
schnell
[Kunde]
Passwort="123456"
[mysqld-8.0]
sql_mode=TRADITIONAL
[mysqladmin]
Gewalt
[mysqld]
Schlüsselpuffergröße = 16 M
Dienst MySQL Neustart

:wq! Speichern und beenden. Beachten Sie, dass service mysqld restart geschrieben werden muss. Das Standardkennwort lautet 123456.

Andere Operationen

[20:53:05 root@wangzhike mysql]#ln -s /usr/local/mysql/my.cnf /etc/my.cnf
#Fügen Sie einen Softlink zum Verzeichnis /etc hinzu [20:53:12 root@wangzhike mysql]#cd
[20:53:13 root@wangzhike ~]#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
#Mysql zum Systemstart hinzufügen [20:53:21 root@wangzhike ~]#chmod 755 /etc/init.d/mysqld
#Ausführungsberechtigungen hinzufügen[20:53:28 root@wangzhike ~]#chkconfig mysqld on
#Zum Booten hinzufügen

4. Dateien bearbeiten

[20:53:39 root@wangzhike ~]#vi /etc/rc.d/init.d/mysqld

####Suchen Sie basedir= und ändern Sie es in /usr/local/mysql
####Suchen Sie datadir= und ändern Sie es in /data/mysql

basedir=/usr/local/mysql #Installationspfad des MySQL-Programms datadir=/data/mysql #Speicherverzeichnis der MySQl-Datenbank

5. Erfolgreich starten

[20:54:32 root@wangzhike ~]#service mysqld start
MySQL.Logging wird in „/data/mysql/wangzhike.err“ gestartet.
. ERFOLG! #Startup erfolgreich

6. Variablen hinzufügen

[20:54:44 root@wangzhike ~]#vi /etc/profile

Fügen Sie export PATH=$PATH:/usr/local/mysql/bin zur letzten Zeile hinzu

[20:55:37 root@wangzhike ~]#source /etc/profile #Die Konfiguration wird sofort wirksam

7. Softlink hinzufügen

[20:55:44 root@wangzhike ~]#ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[20:55:57 root@wangzhike ~]#ln -s /usr/local/mysql/include/mysql /usr/include/mysql
####Das Obige dient zum Verknüpfen der MySQL-Bibliotheksdatei mit dem Standardspeicherort des Systems [20:56:02 root@wangzhike ~]#mkdir /var/lib/mysql
[20:56:14 root@wangzhike ~]#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

8. Starten Sie MySQL

[21:40:14 root@wangzhike ~]#mysql -uroot -p123456
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 9
Serverversion: 8.0.19 Quellverteilung

Copyright (c) 2000, 2020, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MySQL>

Dies zeigt an, dass die Anmeldung erfolgreich war.

Zusammenfassen

Dies ist das Ende dieses Artikels über die Bereitstellung einer LNMP-Umgebung in CentOS8 zum Kompilieren und Installieren von mysql-8.0.29. Weitere verwandte Informationen zur Bereitstellung einer LNMP-Umgebung in CentOS8 zum Kompilieren und Installieren von mysql-8.0.29 finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So installieren und implementieren Sie MySQL 8.0 unter CentOS8
  • Beispiel für die Bereitstellung von MySQL 8.0 mit Docker
  • Implementierung der Docker-Bereitstellung eines MySQL-Clusters
  • Detaillierte Erläuterung des Prozesses zum Bereitstellen von MySql auf dem Centos-Server und zum Herstellen einer Verbindung mit Navicat
  • Tutorial zur Bereitstellung und Installation von MySQL 8.0.18 unter Windows 7
  • Detaillierte Schritte zur Remotebereitstellung einer MySQL-Datenbank unter Linux
  • Implementierung der Docker-Bereitstellung von Django+Mysql+Redis+Gunicorn+Nginx
  • Detaillierte Erläuterung der Bereitstellung von MySQL mit Docker (Datenpersistenz)
  • Docker stellt MySQL bereit, um Beispielcode für eine Remoteverbindung zu erreichen
  • mysql-8.0.17-winx64 Bereitstellungsmethode
  • Ein Problem mit der Bereitstellung von MySQL 5.5

<<:  Postman-Datenverschlüsselung und -entschlüsselung zur Implementierung der Simulationsanforderung der APP-Anmeldeschnittstelle

>>:  Detaillierte Erläuterung von MySQL-Abfragebeispielen für mehrere Tabellen [Linkabfrage, Unterabfrage usw.]

Artikel empfehlen

Ursachen und Lösungen für MySQL-Deadlocks

Die Datenbank ist wie das Betriebssystem eine gem...

Detaillierte Erklärung der Verwendung des MySQL-Paradigmas

1. Paradigma Der englische Name des Paradigmas la...

JavaScript zum Erzielen eines Fortschrittsbalkeneffekts

In diesem Artikelbeispiel wird der spezifische Ja...

Wird CSS3 SCSS wirklich ersetzen?

Beim Styling unserer Webseiten haben wir die Wahl...

Detaillierte Erklärung der in Node.js integrierten Module

Inhaltsverzeichnis Überblick 1. Pfadmodul 2. Bis ...

Was sind Inline-Elemente und Blockelemente?

1. Inline-Elemente nehmen nur die Breite des Inhal...

JS Asynchronous Stack Tracing: Warum „await“ besser ist als „Promise“

Überblick Der grundlegende Unterschied zwischen a...

So löschen Sie schwebenden Beispielcode in CSS

Überblick Das Rahmendiagramm dieses Artikels ist ...

Gründe und Lösungen für die Auswahl des falschen Index durch MySQL

In MySQL können Sie mehrere Indizes für eine Tabe...