Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So rufen Sie eine Prozedur bei jeder mysql-Verbindung auf, die auf Amazon RDS erstellt wird

Sie sind auf dem richtigen Weg, aber Sie haben einen Schritt aufgrund einer mehrdeutigen Formulierung in der anderen Antwort falsch verstanden:

Sie tun also im Wesentlichen Folgendes:

mysql> rds-modify-db-parameter-group ...

Aber Sie sollten stattdessen Folgendes tun:

$ rds-modify-db-parameter-group ...

Es ist keine MySQL-Anweisung, sondern ein Shell-Befehl. RDS-Instanzen haben keinen Shell-Zugriff, daher benötigen Sie einen anderen Computer, um diesen Befehl auszuführen. Typischerweise könnte dies eine EC2-Instanz sein, also nehme ich an, dass der Autor des anderen Managers das mit „Ihre Instanz“ gemeint hat, aber es könnte jede Maschine sein, die den Tools für die RDS-Befehlszeilenschnittstelle installiert .

Sie können dies auch über die RDS-Konsole .

Beachten Sie auch, dass Sie dies auch etwas prägnanter machen könnten, indem Sie die gespeicherte Prozedur vollständig und sogar den Test für rdsadmin vermeiden , indem Sie init_connect setzen zu:

SET @@time_zone = '+5:30'

Der rdsadmin Benutzer sollte immun gegen init_connect sein weil es den SUPER hat Privileg.

Wenn Sie lieber auf rdsadmin testen möchten sowieso...

SET @@time_zone = CASE
     WHEN CURRENT_USER() LIKE '[email protected]%' THEN @@time_zone
    ELSE '+5:30' END

Das Setzen einer Variablen auf dieselbe Variable lässt den Wert unverändert.

Beachten Sie @@time_zone und SESSION time_zone sind gleichwertig.