Nützliche Tipps zur Behebung häufiger Fehler in MySQL

MySQL ist ein weit verbreitetes relationales Open Source-Datenbankverwaltungssystem (RDMS) gehört Orakel. Es war im Laufe der Jahre die Standardauswahl für webbasierte Anwendungen und ist im Vergleich zu anderen Datenbankmodulen immer noch beliebt.

Lesen Sie auch: So installieren Sie das neueste MySQL unter RHEL / CentOS und Fedora

MySQL wurde für Webanwendungen entwickelt und optimiert – es ist ein wesentlicher Bestandteil wichtiger webbasierter Anwendungen wie Facebook, Twitter, Wikipedia, Youtube, und viele andere.

Wird Ihre Website oder Webanwendung von unterstützt? MySQL? In diesem ausführlichen Artikel wird erläutert, wie Sie Probleme und häufige Fehler in beheben können MySQL Datenbankserver. Wir werden beschreiben, wie Sie die Ursachen der Probleme ermitteln und wie Sie sie lösen können.

1. Es kann keine Verbindung zum lokalen MySQL-Server hergestellt werden

Einer der häufigsten Verbindungsfehler zwischen Client und Server in MySQL ist „FEHLER 2002 (HY000): Über den Socket ‘/var/run/mysqld/mysqld.sock’ (2) kann keine Verbindung zum lokalen MySQL-Server hergestellt werden.”.

Es kann keine Verbindung zum lokalen MySQL-Server hergestellt werden
Es kann keine Verbindung zum lokalen MySQL-Server hergestellt werden


Dieser Fehler zeigt an, dass keine vorhanden ist MySQL Server (mysqld) auf dem Host-System ausgeführt oder dass Sie einen falschen Unix-Socket-Dateinamen angegeben haben oder TCP / IP Port, wenn versucht wird, eine Verbindung zum Server herzustellen.

Stellen Sie sicher, dass der Server ausgeführt wird, indem Sie einen Prozess mit dem Namen überprüfen mysqld Verwenden Sie auf Ihrem Datenbankserver-Host den Befehl ps und den Befehl grep wie gezeigt zusammen.

$ ps xa | grep mysqld | grep -v mysqld

Wenn die obigen Befehle keine Ausgabe anzeigen, wird der Datenbankserver nicht ausgeführt. Daher kann der Client keine Verbindung herstellen. Führen Sie den folgenden Befehl systemctl aus, um den Server zu starten.

$ sudo systemctl start mysql        #Debian/Ubuntu
$ sudo systemctl start mysqld       #RHEL/CentOS/Fedora

Um das zu überprüfen MySQL Verwenden Sie den folgenden Befehl, um den Servicestatus zu erhalten.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora
Überprüfen Sie den MySQL-Status
Überprüfen Sie den MySQL-Status

Aus der Ausgabe des obigen Befehls wird die MySQL Dienst ist fehlgeschlagen. In einem solchen Fall können Sie versuchen, es neu zu starten und seinen Status erneut zu überprüfen.

$ sudo systemctl restart mysql
$ sudo systemctl status mysql
Starten Sie MySQL neu und überprüfen Sie den Status
Starten Sie MySQL neu und überprüfen Sie den Status

Wenn der Server wie im folgenden Befehl gezeigt ausgeführt wird, der obige Fehler jedoch weiterhin angezeigt wird, sollten Sie außerdem überprüfen, ob der TCP / IP Der Port wird von einer Firewall oder einem Portblockierungsdienst blockiert.

$ ps xa | grep mysqld | grep -v mysqld

Verwenden Sie den Befehl netstat wie gezeigt, um den Port zu finden, den der Server abhört.

$ sudo netstat -tlpn | grep "mysql"

2. Es kann keine Verbindung zu MySQL Server hergestellt werden

Ein weiterer häufig auftretender Verbindungsfehler ist „(2003) Auf ‘Server’ kann keine Verbindung zum MySQL-Server hergestellt werden (10061)”, Was bedeutet, dass die Netzwerkverbindung abgelehnt wurde.

Überprüfen Sie hier zunächst, ob ein MySQL Server läuft auf dem System wie oben gezeigt. Stellen Sie außerdem sicher, dass auf dem Server Netzwerkverbindungen aktiviert sind und dass der Netzwerkport, über den Sie eine Verbindung herstellen, auf dem Server konfiguriert ist.

Andere häufige Fehler, auf die Sie wahrscheinlich stoßen, wenn Sie versuchen, eine Verbindung zum MySQL-Server herzustellen, sind:

ERROR 2003: Can't connect to MySQL server on 'host_name' (111)
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Diese Fehler weisen darauf hin, dass der Server möglicherweise ausgeführt wird. Sie versuchen jedoch, eine Verbindung mit a herzustellen TCP / IP Port, Named Pipe oder Unix-Socket-Datei, die sich von der unterscheidet, die der Server abhört.

3. Greifen Sie in MySQL auf abgelehnte Fehler zu

Im MySQLwird ein Benutzerkonto definiert als a Nutzername und den Client-Host oder die Hosts, von denen aus der Benutzer eine Verbindung zum Server herstellen kann. Darüber hinaus verfügt ein Konto möglicherweise auch über Authentifizierungsdaten wie ein Kennwort.

Obwohl es viele verschiedene Ursachen für „Zugriff abgelehntEine der häufigsten Ursachen sind Fehler in Bezug auf die MySQL-Konten, die der Server Client-Programmen beim Herstellen einer Verbindung zulässt. Es zeigt das an Nutzername Die in der Verbindung angegebene Berechtigung hat keine Berechtigungen für den Zugriff auf die Datenbank.

Mit MySQL können Konten erstellt werden, mit denen Clientbenutzer eine Verbindung zum Server herstellen und auf vom Server verwaltete Daten zugreifen können. In dieser Hinsicht, wenn Sie auf eine stoßen Zugriff verweigert FehlerÜberprüfen Sie, ob das Benutzerkonto über das von Ihnen verwendete Clientprogramm und möglicherweise den Host, von dem die Verbindung stammt, eine Verbindung zum Server herstellen darf.

Sie können sehen, welche Berechtigungen ein bestimmtes Konto hat, indem Sie das ausführen SHOW GRANTS Befehl wie gezeigt.

> SHOW GRANTS FOR 'tecmint'@'localhost';

Mit den folgenden Befehlen in der MySQL-Shell können Sie einem bestimmten Benutzer in einer bestimmten Datenbank Berechtigungen für die Remote-IP-Adresse erteilen.

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

Außerdem, Zugriff verweigert Fehler kann auch aus Problemen beim Herstellen einer Verbindung zu MySQL resultieren, siehe die zuvor erläuterten Fehler.

4. Verbindung zu MySQL Server unterbrochen

Dieser Fehler kann aus einem der folgenden Gründe auftreten: schlechte Netzwerkkonnektivität, Verbindungszeitüberschreitung oder ein Problem mit BLOB Werte, die größer als sind max_allowed_packet. Stellen Sie bei einem Netzwerkverbindungsproblem sicher, dass Sie über eine gute Netzwerkverbindung verfügen, insbesondere wenn Sie auf einen entfernten Datenbankserver zugreifen.

Wenn es ein ist Verbindungszeitüberschreitung Problem, vor allem wenn MySQL versucht, eine anfängliche Verbindung zum Server zu verwenden, erhöhen Sie den Wert der Verbindungs ​​Timeout Parameter. Aber im Falle von BLOB-Werte das sind größer als max_allowed_packetmüssen Sie einen höheren Wert für das einstellen max_allowed_packet in deinem /etc/my.cnf Konfigurationsdatei unter [mysqld] oder [client] Abschnitt wie gezeigt.

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Wenn die MySQL Auf die Konfigurationsdatei kann für Sie nicht zugegriffen werden. Anschließend können Sie diesen Wert mit dem folgenden Befehl in der MySQL-Shell festlegen.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

5. Zu viele MySQL-Verbindungen

Falls a MySQL Kunde trifft auf die “zu viele VerbindungenFehler bedeutet, dass alle verfügbaren Verbindungen von anderen Clients verwendet werden. Die Anzahl der Verbindungen (Standard ist 151) wird von der gesteuert max_connections Systemvariable; Sie können das Problem beheben, indem Sie den Wert erhöhen, um mehr Verbindungen in Ihrem Netzwerk zu ermöglichen /etc/my.cnf Konfigurationsdatei.

[mysqld]
max_connections=1000

6. Nicht genügend Speicher MySQL

Falls Sie eine Abfrage mit dem ausführen MySQL Wenn das Client-Programm auf den fraglichen Fehler stößt, bedeutet dies, dass MySQL nicht über genügend Speicher verfügt, um das gesamte Abfrageergebnis zu speichern.

Der erste Schritt besteht darin, sicherzustellen, dass die Abfrage korrekt ist. Wenn dies der Fall ist, gehen Sie wie folgt vor:

  • Wenn Sie den MySQL-Client direkt verwenden, starten Sie ihn mit --quick switch, um zwischengespeicherte Ergebnisse zu deaktivieren oder
  • wenn Sie die verwenden MyODBC Treiber hat die Konfigurationsbenutzeroberfläche (UI) eine erweiterte Registerkarte für Flags. Prüfen “Ergebnis nicht zwischenspeichern“.

Ein weiteres großartiges Werkzeug ist: MySQL-Tuner – Ein nützliches Skript, das eine Verbindung zu einem laufenden MySQL-Server herstellt und Vorschläge gibt, wie es für eine höhere Leistung konfiguriert werden kann.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

Tipps zur MySQL-Optimierung und Leistungsoptimierung finden Sie in unserem Artikel: 15 Nützliche Tipps zur Leistungsoptimierung und -optimierung für MySQL / MariaDB.

7. MySQL stürzt immer wieder ab

Wenn Sie auf dieses Problem stoßen, sollten Sie versuchen herauszufinden, ob das Problem darin besteht, dass das MySQL Server stirbt oder ob es der Client mit einem Problem ist. Beachten Sie, dass viele Serverabstürze durch beschädigte Datendateien oder Indexdateien verursacht werden.

Sie können den Serverstatus überprüfen, um festzustellen, wie lange er betriebsbereit ist.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Führen Sie alternativ den folgenden Befehl mysqladmin aus, um die Verfügbarkeit des MySQL-Servers zu ermitteln.

$ sudo mysqladmin version -p 
Finden Sie MySQL Server Uptime
Finden Sie MySQL Server Uptime

Andere Lösungen umfassen, ohne darauf beschränkt zu sein, das Stoppen des MySQL Server und aktivieren Sie das Debuggen, und starten Sie den Dienst erneut. Sie können versuchen, einen Testfall zu erstellen, mit dem das Problem wiederholt werden kann. Öffnen Sie außerdem ein zusätzliches Terminalfenster und führen Sie den folgenden Befehl aus, um MySQL-Prozessstatistiken anzuzeigen, während Sie Ihre anderen Abfragen ausführen:

$ sudo mysqladmin -i 5 status
OR
$ sudo mysqladmin -i 5 -r status 

Fazit: Feststellen, was ein Problem oder einen Fehler verursacht

Obwohl wir uns einige gemeinsame angesehen haben MySQL Probleme und Fehler sowie Möglichkeiten zur Fehlerbehebung und -behebung. Das Wichtigste bei der Diagnose eines Fehlers ist, zu verstehen, was er bedeutet (was ihn verursacht).

Wie können Sie das feststellen? Anhand der folgenden Punkte erfahren Sie, wie Sie genau feststellen können, was ein Problem verursacht:

  1. Der erste und wichtigste Schritt besteht darin, in die MySQL-Protokolle zu schauen, die im Verzeichnis gespeichert sind /var/log/mysql/. Sie können Befehlszeilenprogramme wie tail verwenden, um die Protokolldateien zu lesen.
  2. Wenn der MySQL-Dienst nicht gestartet werden kann, überprüfen Sie seinen Status mit systemctl oder verwenden Sie die journetctl (mit dem -xe Befehl flag) unter systemd, um das Problem zu untersuchen.
  3. Sie können auch Systemprotokolldateien wie z /var/log/messages oder ähnliches aus Gründen für Ihr Problem.
  4. Verwenden Sie Tools wie Mytop, blances, top, ps oder htop, um zu überprüfen, welches Programm die gesamte CPU belegt oder den Computer sperrt, oder um zu überprüfen, ob Ihnen der Arbeitsspeicher, der Speicherplatz, die Dateideskriptoren oder eine andere wichtige Ressource ausgehen .
  5. Angenommen, das Problem ist ein außer Kontrolle geratener Prozess, können Sie jederzeit versuchen, es zu beenden (mithilfe des Dienstprogramms pkill oder kill), damit MySQL normal funktioniert.
  6. Angenommen, die mysqld Server verursacht Probleme, Sie können den Befehl ausführen: mysqladmin -u root ping oder mysqladmin -u root processlist um eine Antwort darauf zu bekommen.
  7. Wenn das Problem bei Ihrem Client-Programm liegt, während Sie versuchen, eine Verbindung zum MySQL-Server herzustellen, überprüfen Sie, warum es nicht ordnungsgemäß funktioniert, und versuchen Sie, zur Fehlerbehebung eine Ausgabe von diesem Programm abzurufen.

Vielleicht möchten Sie auch die folgenden MySQL-Artikel lesen:

  1. Lernen Sie MySQL / MariaDB für Anfänger – Teil 1
  2. Überwachen von MySQL / MariaDB-Datenbanken mit Netdata unter CentOS 7
  3. So übertragen Sie alle MySQL-Datenbanken vom alten auf den neuen Server
  4. Mytop – Ein nützliches Tool zur Überwachung der MySQL / MariaDB-Leistung unter Linux
  5. 12 Best Practices für MySQL / MariaDB-Sicherheit für Linux

Weitere Informationen finden Sie in der MySQL Referenzhandbuch In Bezug auf Probleme und häufige Fehler werden häufig auftretende Probleme und Fehlermeldungen, die bei der Verwendung von MySQL auftreten können, umfassend aufgelistet, einschließlich der oben beschriebenen und weiterer Probleme.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *