sql >> Database >  >> RDS >> Mysql

Hoe een procedure aan te roepen voor elke keer dat een mysql-verbinding is gemaakt op amazon RDS

Je bent op de goede weg, maar je hebt een stap verkeerd begrepen vanwege dubbelzinnige formuleringen in het andere antwoord:

Je doet dus eigenlijk dit:

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

Maar in plaats daarvan zou je dit moeten doen:

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

Het is geen MySQL-statement, het is een shell-commando. RDS-instanties hebben geen shell-toegang, dus u hebt een andere machine nodig om deze opdracht uit te voeren. Meestal kan dit een EC2-instantie zijn, dus ik neem aan dat de auteur van de andere beheerder dat bedoelde met "uw instantie", maar het kan elke machine zijn met de RDS-hulpprogramma's voor de opdrachtregelinterface geïnstalleerd .

U kunt dit ook doen vanuit de RDS-console .

Merk ook op dat je dit ook wat beknopter zou kunnen doen, door de opgeslagen procedure helemaal te vermijden en zelfs de test voor rdsadmin , door init_connect . in te stellen naar:

SET @@time_zone = '+5:30'

De rdsadmin gebruiker moet immuun zijn voor init_connect omdat het de SUPER . heeft voorrecht.

Als u liever test voor rdsadmin hoe dan ook...

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

Als u een variabele op dezelfde variabele instelt, blijft de waarde ongewijzigd.

Opmerking @@time_zone en SESSION time_zone zijn gelijkwaardig.




  1. AbstractMethodError op resultset.getObject

  2. Mysql Selecteer Volgende &Vorige rij niet bestellen op id

  3. MYSQL - Vergelijk NU() en een datum in Paris TimeZone in een verzoek

  4. Slaapstand opslaan() en terugdraaien van transacties