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

Sådan kalder du en procedure hver gang mysql-forbindelse oprettes på amazon RDS

Du er på rette vej, men du har misforstået det ene trin på grund af tvetydige formuleringer i det andet svar:

Så du gør i bund og grund dette:

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

Men du bør i stedet gøre dette:

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

Det er ikke en MySQL-sætning, det er en shell-kommando. RDS-instanser har ikke shell-adgang, så du skal bruge en anden maskine til at køre denne kommando på. Typisk kan dette være en EC2-instans, så jeg antager, at det er det, den anden managers forfatter mente med "din instans", men det kan være enhver maskine, der har RDS kommandolinjeværktøjer installeret .

Du kan også gøre dette fra RDS-konsollen a> .

Bemærk også, at du også kunne gøre dette lidt mere kortfattet, og helt undgå den lagrede procedure og endda testen for rdsadmin , ved at indstille init_connect til:

SET @@time_zone = '+5:30'

rdsadmin brugeren skal være immun over for init_connect fordi den har SUPER privilegium.

Hvis du hellere vil teste for rdsadmin alligevel...

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

Indstilling af en variabel til den samme variabel forlader værdien uændret.

Bemærk @@time_zone og SESSION time_zone er ækvivalente.




  1. Kæmper med en MySQL-database med telefonnumre

  2. Korrekt måde at uploade binær fil til MySQL gennem Spring MVC

  3. excel vba mysql ado-forbindelse

  4. Glassfish opretter ikke JDBC-ressourcer