Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment appeler une procédure à chaque fois que la connexion mysql est créée sur amazon RDS

Vous êtes sur la bonne voie, mais vous avez mal compris une étape, en raison d'une formulation ambiguë dans l'autre réponse :

Donc, vous faites essentiellement ceci :

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

Mais vous devriez plutôt faire ceci :

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

Ce n'est pas une instruction MySQL, c'est une commande shell. Les instances RDS n'ont pas d'accès au shell, vous avez donc besoin d'une autre machine pour exécuter cette commande. En règle générale, il peut s'agir d'une instance EC2, donc je suppose que c'est ce que l'auteur de l'autre gestionnaire voulait dire par "votre instance", mais il pourrait s'agir de n'importe quelle machine qui a le Outils d'interface de ligne de commande RDS installés .

Vous pouvez également le faire depuis la Console RDS .

Notez également que vous pouvez également le faire de manière un peu plus concise, en évitant complètement la procédure stockée et même le test de rdsadmin , en définissant init_connect à :

SET @@time_zone = '+5:30'

Le rdsadmin l'utilisateur doit être immunisé contre init_connect car il a le SUPER privilège.

Si vous préférez tester rdsadmin quand même...

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

Définir une variable sur la même variable laisse la valeur inchangée.

Remarque @@time_zone et SESSION time_zone sont équivalents.