Mysql
 sql >> Database >  >> RDS >> Mysql

Come chiamare una procedura ogni volta che viene creata una connessione mysql su amazon RDS

Sei sulla strada giusta, ma hai frainteso un passaggio, a causa di una frase ambigua nell'altra risposta:

Quindi, stai essenzialmente facendo questo:

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

Ma dovresti invece fare questo:

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

Non è un'istruzione MySQL, è un comando di shell. Le istanze RDS non hanno accesso alla shell, quindi è necessaria una macchina diversa su cui eseguire questo comando. In genere, questa potrebbe essere un'istanza EC2, quindi suppongo che sia ciò che l'autore dell'altro manager intendesse con "tua istanza", ma potrebbe essere qualsiasi macchina con Strumenti dell'interfaccia a riga di comando RDS installati .

Puoi farlo anche dalla Console RDS .

Nota anche che potresti anche farlo in modo un po' più conciso, evitando del tutto la procedura memorizzata e persino il test per rdsadmin , impostando init_connect a:

SET @@time_zone = '+5:30'

Il rdsadmin l'utente dovrebbe essere immune a init_connect perché ha il SUPER privilegio.

Se preferisci testare rdsadmin comunque...

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

L'impostazione di una variabile sulla stessa variabile lascia il valore invariato.

Nota @@time_zone e SESSION time_zone sono equivalenti.