Führen Sie die Schritte zur Installation von MySQL 8.0.x unter Linux aus.

Führen Sie die Schritte zur Installation von MySQL 8.0.x unter Linux aus.

MySQL

Einführung in MySQL

MySQL war ursprünglich ein relationales Open-Source-Datenbankverwaltungssystem. Sein ursprünglicher Entwickler war das schwedische Unternehmen MySQL AB, das 2008 von Sun Microsystems übernommen wurde. Im Jahr 2009 übernahm Oracle Sun Microsystems und MySQL wurde ein Oracle-Produkt.

In der Vergangenheit hat sich MySQL aufgrund seiner hohen Leistung, geringen Kosten und guten Zuverlässigkeit zur beliebtesten Open-Source-Datenbank entwickelt und wird daher häufig auf kleinen und mittelgroßen Websites im Internet verwendet. Mit der Weiterentwicklung von MySQL wird es nach und nach auch in größeren Websites und Anwendungen wie Wikipedia, Google und Facebook eingesetzt. Das „M“ im sehr beliebten Open-Source-Software-Stack LAMP bezieht sich auf MySQL.

Nach der Übernahme durch Oracle erhöhte Oracle jedoch den Preis der kommerziellen Version von MySQL erheblich und unterstützte die Entwicklung eines anderen kostenlosen Softwareprojekts, OpenSolaris, nicht mehr. Infolgedessen hatte die Community für kostenlose Software Bedenken, ob Oracle die MySQL Community Edition (die einzige kostenlose Version von MySQL) weiterhin unterstützen würde. MySQL-Gründer Michael Widenius gründete ein auf MySQL basierendes Zweigprojekt MariaDB. Einige Open-Source-Programme, die ursprünglich MySQL verwendeten, sind nach und nach auf MariaDB oder andere Datenbanken umgestiegen. Beispielsweise kündigte Wikipedia im Jahr 2013 offiziell an, von MySQL auf die MariaDB-Datenbank zu migrieren[6].

Relationale Datenbank

Eine relationale Datenbank (englisch: Relational database) ist eine auf Basis des relationalen Modells erstellte Datenbank, die mathematische Konzepte und Methoden wie etwa die Mengenalgebra nutzt, um die Daten in der Datenbank zu verarbeiten. Verschiedene Entitäten der realen Welt und die verschiedenen Verbindungen zwischen Entitäten werden durch relationale Modelle dargestellt. Das relationale Modell wurde erstmals 1970 von Edgar Codd zusammen mit seinen 12 Gesetzen vorgeschlagen. Obwohl es heute gewisse Kritik an diesem Modell gibt, handelt es sich noch immer um den traditionellen Standard für die Datenspeicherung. Die Standarddatenabfragesprache SQL ist eine auf relationalen Datenbanken basierende Sprache. Diese Sprache führt Abfragen und Operationen an Daten in relationalen Datenbanken durch.

Das relationale Modell besteht aus drei Teilen: relationale Datenstruktur, relationaler Operationssatz und relationale Integritätsbeschränkungen.

MySQL-Funktionen

MySQL ist eine weit verbreitete Datenbank mit den folgenden Funktionen:

  • Geschrieben in C und C++ und mit mehreren Compilern getestet, um die Portabilität des Quellcodes zu gewährleisten
  • Unterstützt AIX, FreeBSD, HP-UX, Linux, Mac OS, Novell Netware, OpenBSD, OS/2
  • Wrap, Solaris, Windows und andere Betriebssysteme.
  • Es werden APIs für mehrere Programmiersprachen bereitgestellt. Zu den Programmiersprachen gehören C, C++, Python, Java, Perl, PHP, Eiffel, Ruby und Tcl usw.
  • Unterstützt Multithreading, um die CPU-Ressourcen voll auszunutzen
  • Optimierter SQL-Abfragealgorithmus zur effektiven Verbesserung der Abfragegeschwindigkeit
  • Es kann als eigenständige Anwendung in einer Client-Server-Netzwerkumgebung oder als Bibliothek verwendet werden.
  • Eingebettet in andere Software zur Bereitstellung mehrsprachiger Unterstützung können gängige Kodierungen wie Chinesisch GB 2312, BIG5, Japanisch Shift_JIS usw. als Datentabellennamen und Datenspaltennamen verwendet werden
  • Bietet mehrere Datenbankverbindungsmethoden wie TCP/IP, ODBC und JDBC
  • Bietet Verwaltungstools zum Verwalten, Überprüfen und Optimieren von Datenbankvorgängen
  • Kann große Datenbanken mit mehreren zehn Millionen Datensätzen verarbeiten

MySQL-Anwendung

Verglichen mit großen Datenbanken wie Oracle, DB2, SQL Server usw. weist MySQL seine eigenen Mängel auf, wie z. B. einen geringen Umfang und eingeschränkte Funktionen (die Funktionen und die Effizienz von MySQL Cluster sind relativ schlecht) usw., was seiner Popularität jedoch keinen Abbruch tut. Für normale Einzelbenutzer sowie kleine und mittlere Unternehmen sind die von MySQL bereitgestellten Funktionen mehr als ausreichend. Und da MySQL eine Open-Source-Software ist, können die Gesamtbetriebskosten erheblich gesenkt werden. Derzeit ist LAMP (Linux+Apache+MySQL+PHP) die beliebteste Website-Architektur im Internet. Dabei wird Linux als Betriebssystem, Apache als Webserver, MySQL als Datenbank und PHP als serverseitiger Skriptinterpreter verwendet. Da Linux+Apache+MySQL+PHP allesamt kostenlose oder Open-Source-Software (FLOSS) sind, können Sie mit LAMP ein stabiles und kostenloses Website-System erstellen, ohne einen Cent auszugeben.

MySLQ-Speicher-Engine

  • Einführung in die MySQL Storage Engine

Die Plug-In-Speicher-Engine ist eine der wichtigsten Funktionen der MySQL-Datenbank. Benutzer können je nach Anwendungsbedarf auswählen, wie die Datenbank gespeichert und indiziert wird, ob Transaktionen verwendet werden usw. mySQL unterstützt standardmäßig mehrere Speicher-Engines, um den Anforderungen von Datenbankanwendungen in verschiedenen Bereichen gerecht zu werden. Benutzer können die Anwendungseffizienz verbessern, indem sie verschiedene Speicher-Engines verwenden und so flexiblen Speicher bereitstellen. Benutzereinstellungen können angepasst werden und je nach Bedarf eigene Speicher-Engines verwenden, um maximale Anpassbarkeit zu erreichen.

Die häufig verwendeten Speicher-Engines von MySQL sind MyISAM, InnoDB, MEMORY und MERGE. InnoDB bietet transaktionssichere Tabellen, während andere Speicher-Engines nicht transaktionssichere Tabellen sind.

MyISAM ist die Standardspeicher-Engine für MySQL. MyISAM unterstützt keine Transaktionen oder Fremdschlüssel, hat aber eine schnelle Zugriffsgeschwindigkeit und erfordert keine Transaktionsintegrität.

Die InnoDB-Speicher-Engine bietet Transaktionssicherheit mit Commit-, Rollback- und Crash-Recovery-Funktionen. Im Vergleich zur MyISAM-Speicher-Engine schreibt InnoDB jedoch weniger effizient und benötigt mehr Speicherplatz, um Daten und Indizes beizubehalten. Die einzige von MySQL unterstützte Fremdschlüssel-Speicher-Engine ist InnoDB. Beim Erstellen eines Fremdschlüssels muss die angehängte Tabelle einen entsprechenden Index haben. Der entsprechende Index wird beim Erstellen eines Fremdschlüssels auch automatisch für die untergeordnete Tabelle erstellt.

  • Funktionen der MySQL Storage Engine

Hauptsächlich reflektiert in Leistung, Transaktionen, Parallelitätskontrolle, referenzieller Integrität, Zwischenspeicherung, Fehlerbehebung, Sicherung und Wiederherstellung usw.

Derzeit sind MyISAM und InnoDB die beliebteren Speicher-Engines, und MyISAM ist für die meisten Webanwendungen die erste Wahl. Die Hauptunterschiede zwischen MyISAM und InnoDB liegen in der Leistung und der Transaktionskontrolle.

MyISAM ist eine erweiterte Implementierung des frühen ISAM (Indexed Sequential Access Method). ISAM ist für Situationen konzipiert, in denen die Lesefrequenz viel höher ist als die Schreibfrequenz. Daher berücksichtigen ISAM und das spätere MyISAM die Unterstützung für Transaktionen nicht und erfordern keine Transaktionsdatensätze. Die Abfrageeffizienz von ISAM ist ziemlich beeindruckend und es benötigt sehr wenig Speicher.

MyISAM erbt die Vorteile von ISAM und bietet eine große Anzahl praktischer neuer Funktionen und zugehöriger Tools, um mit der Zeit Schritt zu halten. Beispielsweise werden Sperren auf Tabellenebene bereitgestellt, um die Parallelitätskontrolle zu berücksichtigen.

Und da MyISAM für jede Tabelle unabhängige Speicherdateien verwendet (MYD-Datendatei und MYI-Indexdatei), sind Sicherung und Wiederherstellung sehr praktisch (einfach kopieren und überschreiben) und es unterstützt auch die Online-Wiederherstellung.

Wenn die Anwendung also keine Transaktionen erfordert, keine Fremdschlüssel unterstützt und nur grundlegende CRUD-Operationen (Erstellen, Löschen, Ändern und Abfragen) verarbeitet, ist MyISAM die beste Wahl.

Installieren Sie mysql8.0 unter Linux (CentOS7.5_x86_64).

# MySQL herunterladen 

$ wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-el7-x86_64.tar.gz

# Entpacken $ mysql tar -zxvf mysql-8.0.4-rc-linux-glibc2.12-x86_64.tar.gz -C /usr/local

# Ändern Sie den Ordnernamen $ mv mysql-8.0.4-rc-linux-glibc2.12-x86_64/mysql

Fügen Sie die Standardkonfigurationsdatei $ vim/etc/my.cnf hinzu

[Kunde]
Port = 3306
socket=/tmp/mysql.sock

[mysqld]
Port = 3306
Benutzer=mysql
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data


# MySQL-Gruppe erstellen $ groupadd mysql

# MySQL-Benutzer erstellen $ useradd -g mysql mysql

# MySQL-Datenverzeichnis erstellen $ mkdir $MYSQL_HOME/data

# MySQL initialisieren 
$ /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/


# Initialisierungsfehler bin/mysqld: Fehler beim Laden gemeinsam genutzter Bibliotheken: libaio.so.1: Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

# Lösung: yum install -y libaio

# Initialisierungsfehler 2018-07-08T02:53:24.542370Z 0 [System] [MY-010116] /usr/local/mysql/bin/mysqld (mysqld 8.0.4-rc) wird als Prozess 17745 gestartet …
mysqld: Datei „/tmp/mysql/data/ibd35qXQ“ kann nicht erstellt/beschrieben werden (Fehlercode: 13 – Berechtigung verweigert)
2018-07-08T02:53:24.554816Z 1 [FEHLER] [MY-011066] InnoDB: Temporäre Datei kann nicht erstellt werden; Fehlernummer: 13
2018-07-08T02:53:24.554856Z 1 [FEHLER] [MY-011066] InnoDB: Die Erstellung der InnoDB-Datenbank wurde mit dem Fehler Allgemeiner Fehler abgebrochen. Möglicherweise müssen Sie die Datei ibdata1 löschen, bevor Sie erneut versuchen, zu starten.
2018-07-08T02:53:24.555000Z 0 [FEHLER] [MY-010020] Initialisierung des Datenwörterbuchs fehlgeschlagen.
2018-07-08T02:53:24.555033Z 0 [FEHLER] [MY-010119] Abbruch
2018-07-08T02:53:24.555919Z 0 [System] [MY-010910] /usr/local/mysql/bin/mysqld: Herunterfahren abgeschlossen.

# Lösung: Ändern Sie die Verzeichnisberechtigungen von /tmp/mysql $ chown -R mysql:mysql /tmp/mysql


# Initialisierung erfolgreich > Wenn keine Anomalien vorliegen, lautet das Protokoll wie folgt: Sie können sehen, dass MySQL standardmäßig ein Root-Konto und ein Root-Passwort generiert: root@localhost:/TI(mjVAs1Ta

[root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2019-01-29T10:19:34.023997Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) Initialisierung des Servers läuft als Prozess 4240
2019-01-29T10:19:39.764895Z 5 [Hinweis] [MY-010454] [Server] Ein temporäres Passwort wird für root@localhost generiert: /TI(mjVAs1Ta
2019-01-29T10:19:43.041419Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) Initialisierung des Servers ist abgeschlossen

# Kopieren Sie die MySQL-Startdatei in das Systeminitialisierungsverzeichnis $ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


# Starten Sie den MySQL-Server $ service mysqld start

Grundlegende MySQL-Operationen

# Verwenden Sie den MySQL-Client, um eine Verbindung zu MySQL herzustellen
$ /usr/local/mysql/bin/mysql -u root -p Passwort

Ändern Sie das Standardinitialisierungskennwort von MySQL> ändern Sie den Benutzer „root“@„localhost“, identifiziert durch „root“.

# Erstellen Sie einen Benutzer CREATE USER 'Benutzername'@'Hostname' INDENTIFIED BY 'Benutzerkennwort'
> Benutzer „jack“@„localhost“ erstellen, identifiziert durch „jack“;

# Berechtigung erteilen. Berechtigung für Datenbank.Tabelle erteilen an „Benutzername“@„Anmeldehost“ [Identifiziert durch „Benutzerkennwort“];
> gewähre 'jack'@'localhost' Replikations-Slave auf *.*;

# Aktualisieren # $ Berechtigungen leeren; 

# Ändern Sie den Root-Benutzer, um eine Remote-Verbindung herstellen zu können> update mysql.user set host='%' where user='root';

# Den von MySQL verwendeten Benutzer anzeigen> select user,host from mysql.user;

# Docker ändert die maximale Anzahl von Verbindungen für MySQL apt-get update
apt-get installieren vim
vim /etc/mysql/mysql.conf.d/mysqld.cnf
max_verbindungen=1000

> Benutzer „root“@„%“ ändern, identifiziert mit mysql_native_password durch „root“;

MySQL-Cluster-Master-Slave-Replikation

Bereiten Sie zwei installierte MySQL-Server vor

# Konfigurieren Sie den Hauptdienst und fügen Sie die folgende Konfiguration hinzu $ vim /etc/my.cnf

# Eindeutiger Knoten-ID-Wert Server-ID = 1

# Binärprotokoll aktivieren log-bin=mysql-bin

# Das angegebene Protokollformat ist gemischt|Zeile|Anweisung. Gemischt wird empfohlen.
Binlog-Format = gemischt

# Schrittwert auto_imcrement. Wenn es n MySQL-Masterserver gibt, geben Sie im Allgemeinen n ein (optionale Konfiguration).
auto_increment_increment=2 

# Startwert. Füllen Sie im Allgemeinen den n-ten MySQL-Master aus. Dies ist der erste Master MySQL (optionale Konfiguration)
auto_increment_offset=1 

# Die MySQL-Bibliothek ignorieren (optionale Konfiguration)
binlog-ignore=mysql 

# Ignorieren Sie die information_schema-Bibliothek (optional)
binlog-ignore=Informationsschema 

# Zu synchronisierende Datenbank, standardmäßig alle Datenbanken (optionale Konfiguration)
replizieren-do-db=db1


# Slave-Knotenkonfiguration # eindeutiger Knoten-ID-Wert Server-ID=2

# Binärprotokoll aktivieren log-bin=mysql-bin

# Schrittwert auto_imcrement. Wenn es n MySQL-Masterserver gibt, geben Sie im Allgemeinen n ein (optionale Konfiguration).
auto_increment_increment=2

# Startwert. Füllen Sie im Allgemeinen den n-ten MySQL-Master aus. Dies ist der erste Master MySQL (optionale Konfiguration)
auto_increment_offset=2

# Zu synchronisierende Datenbank, standardmäßig alle Datenbanken (optionale Konfiguration)
replizieren-do-db=db1


# Überprüfen Sie den Status des Masters, insbesondere das aktuelle Protokoll und den Standort > Master-Status anzeigen;
+------------------+----------+--------------+------------------+-------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 | 1608 | | | |
+------------------+----------+--------------+------------------+-------------------+

# Führen Sie den folgenden Befehl auf dem Slave-Knoten aus. Beachten Sie, dass master_log_file dem Wert von file in show master status entspricht; und master_log_pos dem Wert von position> change master to entspricht.
master_host='192.168.79.15',
master_user='root',
Master-Passwort = "root",
master_log_file='mysql-bin.000009',
master_log_pos=0;

# Slave-Status starten (mit der Überwachung von Slave-Änderungen beginnen)
> Slave starten;

# Überprüfen Sie den Slave-Status> show slave status\G

*************************** 1. Reihe ***************************
    Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet
     Master_Host: 192.168.79.15
     Master_Benutzer: root
     Master_Port: 3306
    Verbindungswiederholung: 60
    Master_Log_File:mysql-bin.000009
   Read_Master_Log_Pos: 863
    Relay_Log_File: node-6-relay-bin.000002
    Relay_Log_Pos: 500
  Relay_Master_Log_File: mysql-bin.000009
    Slave_IO_Running: Ja
   Slave_SQL_Running: Ja
    Replicate_Do_DB: 
   Replikat_Ignorieren_DB: 
   Tabelle_replizieren: 
  Tabelle_Ignorieren_replizieren: 
  Wild_Do_Tabelle replizieren: 
 Tabelle_Wild_Ignore_replizieren: 
     Last_Errno: 0
     Letzter_Fehler: 
     Skip_Counter: 0
   Exec_Master_Log_Pos: 863
    Relay_Log_Space: 709
    Until_Condition: Keine
    Bis_Log_Datei: 
    Bis_Log_Pos: 0
   Master_SSL_Allowed: Nein
   Master_SSL_CA_Datei: 
   Master_SSL_CA_Pfad: 
    Master_SSL_Zertifikat: 
   Master_SSL_Chiffre: 
    Master_SSL_Schlüssel: 
  Sekunden_Hinter_Master: 0
Master_SSL_Verify_Server_Cert: Nein
    Last_IO_Errno: 0
    Letzter_E/A-Fehler: 
    Last_SQL_Errno: 0
    Letzter_SQL_Fehler: 
 Server-IDs replizieren_ignorieren: 
    Master_Server_Id: 1
     Master_UUID: 6291c709-23af-11e9-99fb-000c29071862
    Master_Info_Datei: mysql.slave_master_info
     SQL_Delay: 0
   SQL_Remaining_Delay: NULL
  Slave_SQL_Running_State: Slave hat alle Relay-Logs gelesen; wartet auf weitere Updates
   Master_Retry_Count: 86400
     Master_Bind: 
  Zeitstempel des letzten IO-Fehlers: 
  Letzter_SQL_Fehler_Zeitstempel: 
    Master_SSL_Crl: 
   Master_SSL_Crlpfad: 
   Abgerufenes_Gtid_Set: 
   Ausgeführtes_Gtid_Set: 
    Auto_Position: 0
   DB replizieren_neu schreiben: 
     Kanalname: 
   Master_TLS_Version: 
  Pfad des öffentlichen Masterschlüssels: 
  Get_master_public_key: 0

# Wenn Slave_IO_Running: Yes und Slave_SQL_Running: Yes beide „Ja“ lauten, bedeutet dies, dass die Master-Slave-Replikation normal ist. #Slave-Status zurücksetzen.
$ Slave zurücksetzen;

#Slave-Zustand anhalten;
$ Sklave stoppen;

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So installieren Sie MySQL auf Ubuntu 18.04 (Linux)
  • MySQL 8.0-Installationstutorial unter Linux
  • Detailliertes Tutorial zur kostenlosen Installationsversion von MySQL 5.7.18 unter Linux
  • MySQL 5.6.28 Installations- und Konfigurations-Tutorial unter Linux (Ubuntu)
  • Diagramm des Prozesses von der Deinstallation bis zur Installation von MySQL 5.7.18 yum unter Linux
  • Detailliertes Tutorial zur Installation von MySQL 5.7.17 auf Oracle Linux 6.8
  • Detailliertes Tutorial zur Installation von MySQL 5.7.18 unter Linux (CentOS 7) mit YUM
  • Installieren Sie MySQL 5.7 unter Ubuntu 18.04
  • Detailliertes Tutorial zur Installation von mysql8.0 mit dem Linux-Befehl yum
  • Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15 sowie zur Kennwortänderung unter Linux

<<:  Lösung für die nicht wirksame Änderung des El-Popover-Stils von ElementUI

>>:  Erstellen Sie einen neuen Benutzer in Linux und erteilen Sie Berechtigungen für das angegebene Verzeichnis

Artikel empfehlen

Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS

Das Filterattribut definiert die visuelle Wirkung...

Eine kurze Diskussion über die Rolle von Vue3 defineComponent

Inhaltsverzeichnis defineComponent-Überladungsfun...

Tiefgreifendes Verständnis des Linux-Lastausgleichs LVS

Inhaltsverzeichnis 1. LVS-Lastausgleich 2. Grundl...

Zusammenfassung gängiger Toolbeispiele in MySQL (empfohlen)

Vorwort Dieser Artikel stellt hauptsächlich die r...

Installation und Verwendung der MySQL MyCat-Middleware

1. Was ist mycat Ein vollständig Open Source-Groß...

Detaillierte Erklärung zum MySQL-Datenarchivierungstool mysql_archiver

Inhaltsverzeichnis I. Überblick 2. pt-archiver Ha...

Vue implementiert Multi-Grid-Eingabefeld auf mobilem Endgerät

Vor Kurzem hat das Unternehmen die Anforderung ge...

Erstellen einer KVM-Virtualisierungsplattform auf CentOS7 (drei Möglichkeiten)

KVM steht für Kernel-based Virtual Machine und is...

Implementierung der Vue-Einzeldateikomponente

Ich habe kürzlich über Vue gelesen. Ich habe eine...