sql >> Base de Datos >  >> RDS >> Mysql

Cómo llamar a un procedimiento cada vez que se crea una conexión mysql en Amazon RDS

Está en el camino correcto, pero ha entendido mal un paso, debido a una redacción ambigua en la otra respuesta:

Entonces, esencialmente estás haciendo esto:

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

Pero deberías estar haciendo esto:

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

No es una declaración de MySQL, es un comando de shell. Las instancias de RDS no tienen acceso de shell, por lo que necesita una máquina diferente para ejecutar este comando. Por lo general, esta podría ser una instancia EC2, por lo que supongo que eso es lo que el autor del otro administrador quiso decir con "su instancia", pero podría ser cualquier máquina que tenga el Herramientas de interfaz de línea de comandos RDS instaladas .

También puede hacerlo desde la Consola RDS .

Tenga en cuenta también que también podría hacer esto de manera un poco más concisa, evitando el procedimiento almacenado por completo e incluso la prueba para rdsadmin , configurando init_connect a:

SET @@time_zone = '+5:30'

El rdsadmin el usuario debe ser inmune a init_connect porque tiene el SUPER privilegio.

Si prefiere probar rdsadmin de todos modos...

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

Establecer una variable en la misma variable deja el valor sin cambios.

Nota @@time_zone y SESSION time_zone son equivalentes.