Ein Problem mit der Bereitstellung von MySQL 5.5

Ein Problem mit der Bereitstellung von MySQL 5.5

MySQL-Bereitstellung

Derzeit stellt das Unternehmen MySQL über Plattformoperationen bereit. Am Freitag gab es vorübergehend einige Probleme mit der Plattform. Ich musste es dringend bereitstellen und habe es daher manuell bereitgestellt. Da ich die Umgebung schon lange nicht mehr bereitgestellt habe, bin ich etwas eingerostet. Ich zeichne die Bereitstellungsschritte und aufgetretenen Probleme hier auf und hoffe, dass sie für alle hilfreich sind.

1. Generell gibt es drei gängige Bereitstellungsmethoden. Die erste ist die Yum-Methode, also das RPM-Paket. Die zweite ist die Quellcode-Methode, also der Quellcode. Die dritte ist das Binärpaket, also das Paket im Tar.gz-Format. Sie können es einfach entpacken. Ich verwende die dritte Methode und stelle MySQL Version 5.5.19 bereit.

2. Schauen wir uns zunächst den Fehler an:

Anweisung zum Starten des Dienstes:
/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe --defaults=/data/mysql_4310/my.cnf &

 [Hinweis] InnoDB: Wartet auf den Beginn der Bereinigung
 [Hinweis] InnoDB: Percona XtraDB (http://www.percona.com) 5.7.16-10 gestartet; Protokollsequenznummer 0
 [Hinweis] Das Plugin „FEDERATED“ ist deaktiviert.
20190621_11:25:41mysqld: Tabelle 'mysql.plugin' existiert nicht
 [FEHLER] Die Tabelle mysql.plugin kann nicht geöffnet werden. Führen Sie bitte mysql_upgrade aus, um sie zu erstellen.
 [FEHLER] unbekannte Variable „thread_concurrency=8“
 [FEHLER] Abbruch

Wie Sie sehen, werden zwei Fehler gemeldet. Der erste ist, dass die Tabelle mysql.plugin nicht geöffnet werden kann, und der zweite Fehler ist ein Parameterfehler. Der Parameter thread_concurrency kann nicht erkannt werden.

Zur zweiten Frage kann bestätigt werden, dass es sich um ein Parameterproblem in der Konfigurationsdatei handelt. Da ich die reguläre 5.7-Konfigurationsdatei verwendet und mehrere Parameter geändert habe, ist es sehr wahrscheinlich, dass dieser Parameter fehlt und geändert werden kann. Hauptsächlich die erste Frage. Zu diesem Zeitpunkt habe ich die folgenden Versuche unternommen.

3. Lösung

Versuch 1: Versuchen Sie einen Neustart

Methode, die den Dienst „MySQL Start“ verwendet:

[root]# Dienst mysql_4310 starten
MySQL wird gestartet.....Der Server wurde beendet, ohne die PID-Datei (fil[FAILED]/mysql_4310/tmp/mysql.pid) zu aktualisieren.

Es stellt sich heraus, dass der Dienst immer noch nicht gestartet werden kann und die Ausgabe des Fehlerprotokolls unverändert bleibt.

Versuch 2: Sehen Sie sich die Eingabeaufforderung nach dem Fehler an und führen Sie die Methode mysql_upgrade aus

[root bin]# ./mysql_upgrade --protocol=tcp -P4310 -p
Passwort eingeben: 
Suche nach „mysql“ als: ./mysql
Suche nach „mysqlcheck“ als: ./mysqlcheck
Ausführen von „mysqlcheck“ mit den Verbindungsargumenten: „--protocol=tcp“ „--port=4310“ 
./mysqlcheck: Habe den Fehler erhalten: 2003: Beim Versuch, eine Verbindung herzustellen, kann keine Verbindung zum MySQL-Server auf „localhost“ (111) hergestellt werden

Es scheint, dass es immer noch nicht funktioniert. Derzeit vermute ich ernsthaft, dass es ein Problem mit der Konfigurationsdatei ist:.

Versuch 3: Holen Sie sich eine mysql5.5-Konfigurationsdatei aus der Onlineumgebung, ersetzen Sie sie durch die neue Konfigurationsdatei und starten Sie neu:

[root@mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe --defaults-file=/data/mysql_4310/my.cnf & 
[1] 63529
[root@mysql_4310]# 190621 11:51:37 mysqld_safe Protokollierung in '/data/mysql_4310/log/hb30_web_wechat_answers-121_246.err'.
190621 11:51:37 mysqld_safe Starte mysqld-Daemon mit Datenbanken von /data/mysql_4310/data
190621 11:51:40 mysqld_safe mysqld aus PID-Datei /data/mysql_4310/tmp/mysql.pid beendet

Sehen Sie sich das Fehlerprotokoll an:

Sehen Sie sich das Fehlerprotokoll an:
[Hinweis] Das Plugin „FEDERATED“ ist deaktiviert.
-5.5.19-linux2.6-x86_64/bin/mysqld: Unbekannter Fehler 1146
[FEHLER] Die Tabelle mysql.plugin kann nicht geöffnet werden. Führen Sie bitte mysql_upgrade aus, um sie zu erstellen.
InnoDB: Der InnoDB-Speicherheap ist deaktiviert
InnoDB: Mutexe und rw_locks unter Verwendung atomarer GCC-Builtins
InnoDB: Komprimierte Tabellen verwenden zlib 1.2.3
InnoDB: Linux-natives AIO verwenden
InnoDB: Pufferpool wird initialisiert, Größe = 4,0 G
InnoDB: Initialisierung des Pufferpools abgeschlossen
Die angegebene Datendatei /data/mysql_4310/ibdata1 existierte nicht:
Tabase soll erstellt werden!
 InnoDB: Größe der Datei /data/mysql_4310/ibdata1 auf 1000 MB festlegen
 schreibt die Datei physisch vollständig: warten …
 in MB: 100 200 300 400 500 600 700 800 900 1000
 InnoDB: Datendatei /data/mysql_4310/ibdata2 existierte nicht: muss neu erstellt werden
 InnoDB: Größe der Datei /data/mysql_4310/ibdata2 auf 100 MB festlegen
 schreibt die Datei physisch vollständig: warten …
 in MB: 100
og-Datei /data/mysql_4310/innodblog/ib_logfile0 hat eine andere Größe 0 1073741824 Bytes
cified in der .cnf-Datei 0 134217728 Bytes!
[FEHLER] Die Initialisierungsfunktion des Plugins „InnoDB“ hat einen Fehler zurückgegeben.
[FEHLER] Die Registrierung des Plugins „InnoDB“ als STORAGE ENGINE ist fehlgeschlagen.
[FEHLER] Abbruch

Es wurde festgestellt, dass am Anfang ein neuer Fehler auftrat, der darauf hinweist, dass die InnoDB-Initialisierungsfunktion einen Fehler zurückgegeben hat und die InnoDB-Speicher-Engine nicht verwendet werden konnte. An diesem Punkt begann ich mich zu fragen, ob während der Initialisierung ein Fehler aufgetreten war, der dazu führte, dass der Dienst nicht verfügbar war. Daher dachte ich darüber nach, das Datenwörterbuch erneut zu initialisieren und den Dienst neu zu starten, um zu sehen, ob er funktioniert.

Versuch 4: Datenwörterbuch neu initialisieren

Ich habe versucht, die Initialisierung mit der Methode „Initialize-Insecure“ erneut zu initialisieren und habe festgestellt, dass dies fehlgeschlagen ist.

[root mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld
 --initialisieren-unsicher 
--defaults-file=/data/mysql_4310/my.cnf 
--datadir=/Daten/mysql_4310/Daten 
--basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 &
[1] 7045



[1]+ Beenden 2 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld 
--initialisieren-unsicher 
--defaults-file=/data/mysql_4310/my.cnf 
--datadir=/Daten/mysql_4310/Daten 
--basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64

Das Fehlerprotokoll ist immer noch dasselbe wie zuvor und zeigt an, dass die Tabelle mysql.plugin nicht existiert. Darüber hinaus gibt es eine weitere Zeile, und zwar die folgende:

[FEHLER] /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld: unbekannte Option „--initialize-insecure“

Also habe ich das offizielle Dokument nach dem Parameter --initialize-insecure durchsucht und festgestellt, dass dieser Parameter in MySQL Version 5.5 nicht vorhanden ist. Die Version 5.5 hat den Parameter initialize, also habe ich ihn in den Parameter initialize geändert, neu initialisiert und dann den folgenden Fehler gemeldet:

[root@ ]/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 --initialize &

[1]+ Beenden 2 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 --initialize

Überprüfen Sie an dieser Stelle die offizielle Dokumentation und stellen Sie fest, dass die MySQL 5.5-Version mit dem Befehl mysql_install_db anstelle des Befehls mysqld initialisiert wird. Das Tool mysql_install_db befindet sich nicht im Verzeichnis /usr/local/mysql-5.5.19-linux2.6-x86_64/bin, sondern im Verzeichnis /usr/local/mysql-5.5.19-linux2.6-x86_64/scripts. Verwenden Sie daher den Befehl cp, um es in das angegebene Verzeichnis zu kopieren und es dann wie folgt zu initialisieren:

[root@mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db 
--defaults-file=/data/mysql_4310/my.cnf 
[root@mysql_4310]# ll | grep installieren
[root@mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db 
--defaults-file=/data/mysql_4310/my.cnf 
--datadir=/Daten/mysql_4310/Daten 
--basedir=/usr/local/mysql-5.5.19-linu
[1] 16365
[root@mysql_4310]# 
MySQL-Systemtabellen werden installiert …
OK
Hilfetabellen werden ausgefüllt...
OK

Um mysqld beim Booten zu starten, müssen Sie kopieren
support-files/mysql.server an den richtigen Ort für Ihr System

Denken Sie bitte daran, ein Passwort für den MySQL-Root-Benutzer festzulegen!
Starten Sie dazu den Server und geben Sie dann die folgenden Befehle ein:

/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u Root-Passwort „neues Passwort“
/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root -h tk01-devt-mysql-7-200 Passwort „neues Passwort“

Alternativ können Sie Folgendes ausführen:
/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_secure_installation

Sie haben außerdem die Möglichkeit, den Test zu entfernen
Datenbanken und anonyme Benutzer werden standardmäßig erstellt. Dies ist
Es wird dringend für Produktionsserver empfohlen.

Weitere Anweisungen finden Sie im Handbuch.

Sie können den MySQL-Daemon wie folgt starten:
cd /usr/local/mysql-5.5.19-linux2.6-x86_64 ; /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe &

Sie können den MySQL-Daemon mit mysql-test-run.pl testen.
cd /usr/local/mysql-5.5.19-linux2.6-x86_64/mysql-test ; perl mysql-test-run.pl

Bitte melden Sie alle Probleme mit dem Skript /usr/local/mysql-5.5.19-linux2.6-x86_64/scripts/mysqlbug!


[1]+ Fertig /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64

Das Ergebnis war erfolgreich.

Um es zusammenzufassen:

1. Die Initialisierung der MySQL 5.5-Version verwendet das Tool mysql_install_db anstelle des Tools mysqld

2. Die Initialisierung der MySQL 5.5-Version verwendet den Parameter --initialize

Oben sind die Details eines Problems bei der Bereitstellung von MySQL 5.5 aufgeführt. Weitere Informationen zur Bereitstellung von MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

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
  • Detailliertes Tutorial zum Kompilieren und Installieren von mysql8.0.29 in der LNMP-Umgebung von CentOS8
  • 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

<<:  So sammeln Sie Nginx-Protokolle mit Filebeat

>>:  Praxis der mehrschichtigen verschachtelten Anzeige von Elementtabellen

Artikel empfehlen

Der Unterschied zwischen Float- und Positionsattributen im CSS-Layout

CSS-Layout – Positionseigenschaft Das Positionsat...

Eine detaillierte Einführung in die Verwendung von Blockkommentaren in HTML

Allgemeine Kommentare in HTML: <!--XXXXXXXX--&g...

Über die Implementierung des JavaScript-Karussells

Heute ist ein weiterer sehr praktischer Fall. All...

So verwenden Sie Vue zum Entwickeln öffentlicher Account-Webseiten

Inhaltsverzeichnis Projekthintergrund Start Erste...

Das native VIDEO-Tag der HTML-Seite verbirgt die Download-Button-Funktion

Beim Schreiben eines Webprojekts stieß ich auf ei...

Schreiben Sie Ihr HTML so, um Ihren Code kompatibler zu machen

Beispielsweise Benutzer, die eine Bildschirmleseso...

Beispiel für eine geplante MySQL-Datenbanksicherung

Dieser Artikel beschreibt das Beispiel eines gepl...

Lösung für den Fehler von 6ull beim Laden des Linux-Treibermoduls

Inhaltsverzeichnis 0x01 Das Treibermodul konnte n...

Lösung zum Verlassen von Lücken zwischen BootStrap-Rastern

Inhaltsverzeichnis [Siehe ein Beispiel]: [Der urs...

Docker erstellt Cluster-MongoDB-Implementierungsschritte

Vorwort Aufgrund der Geschäftsanforderungen des U...