it-swarm.com.de

Wie führe ich den Befehl "mysqladmin flush-hosts" auf einer Amazon RDS-Datenbankserver-Instanz aus?

Ich habe einen Datenbankserverausfall, der besagt, dass der Host wegen vieler Verbindungsfehler blockiert ist. Ich werde gebeten, die Blockierung mit "mysqladmin flush-hosts" aufzuheben.

wie und wo soll ich diesen Befehl auf unserem Amazon rds-Datenbankserver ausführen?

danke dir

56
user955461

Ich verwende kein RDS, aber mit normalem MySQL verbinden Sie sich einfach mit dem 'root'-Benutzer. Dann ausstellen

FLUSH HOSTS;

sQL-Abfrage.

Selbst bei zu vielen Verbindungen sollte mysql eine Verbindung in Reserve halten, damit ein SUPER-Benutzer eine Verbindung herstellen kann (normalerweise root).

(mysqladmin auf der CLI verbindet sich normalerweise sowieso nur als root und gibt die obige SQL aus :)

81
barryhunter

Melden Sie sich bei jeder anderen EC2-Instanz an, die Zugriff auf die betreffende RDS-Instanz hat und auf der mysqladmin installiert und ausgeführt wird

mysqladmin -h <RDS ENDPOINT URL> -P 3306 -u <USER> -p flush-hosts

sie werden aufgefordert, Ihr Passwort einzugeben

28
Chris

Wenn eine Amazon RDS-Instanz blockiert wird, weil der Wert von max_connect_errors überschritten wurde, können Sie nicht den Host, der die Verbindungsfehler generiert hat, verwenden, um den Befehl "flush hosts" als MySQL Server auszuführen, der auf der Instanz ausgeführt wird blockiert zu diesem Zeitpunkt Verbindungen von diesem Host.

Sie müssen daher den Befehl "flush hosts" von einer anderen EC2-Instanz oder einem Remote-Server aus ausführen, der Zugriff auf diese RDS-Instanz hat.

mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts

Wenn dazu eine neue Instanz gestartet oder Sicherheitsgruppen erstellt/geändert werden müssen, um externen Zugriff zu ermöglichen, kann es schneller sein, sich einfach bei der RDS-Benutzeroberfläche anzumelden und die blockierte RDS-Instanz neu zu starten.

12
Garreth McDaid

Ich habe diesen Fehler auf meiner RDS-Instanz behoben, indem ich ihn über die AWS-Verwaltungskonsole neu gestartet habe. HTH

[edit: lol downvotes]

9
Alex W

Da ist der Host gesperrt. Versuchen Sie, eine Verbindung zu einem anderen Host herzustellen, und führen Sie den Befehl mysqladmin flush-hosts aus.

mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
5
Ryan

Auf Amazon RDS FLUSH HOSTS; kann vom Standardbenutzer ausgeführt werden ("Hauptbenutzername" in RDS-Info), und es hilft.

3
Atis Lezdins

Sie müssen Ihr RDS über einen Computer verbinden, auf dem ich als installiertes MySQL einen meiner Hosting-VPS mit SSH verwendet habe

Nachdem ich in meinem VPS eingeloggt war (ich habe PuTTY verwendet), gab ich in der Eingabeaufforderung einfach den folgenden Befehl ein:

mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts
1
Ram m.

Sie können die Datenbank in RDS Admin neu starten.

1
Scudelletti

Sie können das lokale MySQL des Hosts mit dem folgenden Befehl leeren:

mysqladmin -u [username] -p flush-hosts
**** [MySQL password]

oder

mysqladmin flush-hosts -u [username] -p
**** [MySQL password]

Befindet sich der Amazon RDS-Datenbankserver im Netzwerk, verwenden Sie den folgenden Befehl als Flush-Netzwerk-MySQL-Server:

mysqladmin -h <RDS ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
mysqladmin -h [YOUR RDS END POINT URL] -P 3306 -u [DB USER] -p flush-hosts 

In einem zusätzlichen Vorschlag können Sie das Problem mit blockierten Verbindungen dauerhaft lösen, indem Sie die Datei my.ini [MySQL-Konfigurationsdatei] bearbeiten.

variable ändern max_connections = 10000;

oder

mit der Kommandozeile in MySQL einloggen -

mysql -u [username] -p
**** [MySQL password]

füge den folgenden Befehl in das MySQL-Fenster ein

SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;

überprüfe die Richtigkeit mit Kommando

show variables like "max_connections";
show variables like "max_connect_errors";
0
Syeful Islam