sql >> Databasteknik >  >> RDS >> Mysql

Hur man anropar en procedur varje gång mysql-anslutning skapas på amazon RDS

Du är på rätt väg, men du har missuppfattat ett steg, på grund av tvetydiga formuleringar i det andra svaret:

Så du gör i princip detta:

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

Men du bör istället göra så här:

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

Det är inte en MySQL-sats, det är ett skalkommando. RDS-instanser har inte skalåtkomst, så du behöver en annan maskin för att köra detta kommando på. Vanligtvis kan detta vara en EC2-instans, så jag antar att det är vad den andra chefens författare menade med "din instans", men det kan vara vilken maskin som helst som har RDS kommandoradsgränssnittsverktyg installerade .

Du kan också göra detta från RDS-konsolen a> .

Observera också att du också kan göra detta lite mer kortfattat och undvika den lagrade proceduren helt och hållet och till och med testet för rdsadmin , genom att ställa in init_connect till:

SET @@time_zone = '+5:30'

rdsadmin användaren bör vara immun mot init_connect eftersom den har SUPER privilegium.

Om du hellre vill testa för rdsadmin i alla fall...

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

Att ställa in en variabel till samma variabel lämnar värdet oförändrat.

Notera @@time_zone och SESSION time_zone är likvärdiga.




  1. intermittent MySQL-server har försvunnit fel

  2. Gör index på Varchar skillnad på prestanda?

  3. Windows7 WAMP 64-bitars stack MySQL-problem

  4. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Inga operationer tillåtna efter att anslutningen stängts