AWS RDS weist dem Hauptkonto kein SUPER-Privileg zu

AWS RDS weist dem Hauptkonto kein SUPER-Privileg zu

Ich erhalte bei meiner Web-App die Fehlermeldung „Zu viele Verbindungen“:http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

Ich möchte mich daher mit der Datenbank verbinden, show full processes/gdamit ich den Code debuggen kann. Ich verwende den folgenden CLI-Befehl:

mysql -h domain.eu-west-1.rds.amazonaws.com -P 3306 -u username -p

Der Benutzername, den ich verwende, ist der Hauptbenutzername, der beim Starten der Instanz erstellt wurde. Meines Wissens hält MySQL immer eine Verbindung frei, damit sich Konten mit SUPER-Berechtigungen verbinden können. Wenn ich das jedoch tue, erhalte ich die Antwort „zu viele Fehler“.

Wenn man sich die Konfiguration ansieht, scheint der Master-Benutzername nur Superrechte für die Datenbank und nicht für die Domäne zu haben. Ist das richtig? Wie kann ich mich sonst bei MySQL anmelden, um den Server zu debuggen?

Antwort1

Das stimmt, RDS erlaubt nicht jedem Konto, dieses SUPERPrivileg zu haben. Dies ist eine bedauerliche Einschränkung in RDS.

Ihr Problem klingt jedoch so, als könnte es „behoben“ (oder zumindest behoben) werden, indem Sie max_connect_errorsdie RDS-Parametergruppe für Ihre Instanz erhöhen, wodurch RDS gegenüber Verbindungsfehlern von Ihrer IP toleranter wird.

Ihre Frage lässt mich darüber nachdenken, ob Sie zu viele Verbindungen haben … oder zu viele Fehler.

Wenn Fehler auftreten, können Sie versuchen, von einer anderen IP darauf zuzugreifen. Sie können die Zähler mit löschen FLUSH HOSTS;.

Die Einstellung log_warnings= 2 in der Parametergruppe erhöht die Anzahl der Protokollierungen für Verbindungsfehler (das Fehlerprotokoll ist über die Konsole verfügbar) und dieskönntehilft Ihnen dabei, die Ursache für die hohe Fehleranzahl Ihres Hosts zu ermitteln.

Änderungen an der Parametergruppe werden, wenn möglich, sofort auf den Server angewendet. Der Bildschirm „Instanzdetails“ neben der Parametergruppe gibt Ihnen jedoch einen Hinweis darauf, ob die Anwendung der Änderungen noch aussteht, einen Neustart erfordert oder abgeschlossen (synchronisiert) ist.

Wenn das Problem lediglich „zu viele Verbindungen“ sind, besteht die einzige Lösung – sofern Sie die App nicht zum Trennen einiger Verbindungen zwingen können – darin, die Instanz neu zu starten, einen Verbindungssteckplatz zu belegen und verbunden zu bleiben, damit Sie Zugriff haben, wenn das Problem erneut auftritt.

verwandte Informationen