Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como chamar um procedimento toda vez que a conexão mysql é criada no amazon RDS


Você está no caminho certo, mas não entendeu um passo, devido ao fraseado ambíguo na outra resposta:

Então, você está essencialmente fazendo isso:
mysql> rds-modify-db-parameter-group ...

Mas você deveria estar fazendo isso:
$ rds-modify-db-parameter-group ...

Não é uma instrução MySQL, é um comando shell. As instâncias do RDS não têm acesso ao shell, portanto, você precisa de uma máquina diferente para executar esse comando. Normalmente, essa pode ser uma instância do EC2, então presumo que seja isso que o autor do outro gerente quis dizer com "sua instância", mas pode ser qualquer máquina que tenha o Ferramentas de interface de linha de comando RDS instaladas .

Você também pode fazer isso no Console RDS .

Observe também que você também pode fazer isso de forma um pouco mais concisa, evitando completamente o procedimento armazenado e até mesmo o teste para rdsadmin , definindo init_connect para:
SET @@time_zone = '+5:30'

O rdsadmin o usuário deve ser imune a init_connect porque tem o SUPER privilégio.

Se você preferir testar para rdsadmin de qualquer forma...
SET @@time_zone = CASE
     WHEN CURRENT_USER() LIKE '[email protected]%' THEN @@time_zone
    ELSE '+5:30' END

Definir uma variável para a mesma variável deixa o valor inalterado.

Observe @@time_zone e SESSION time_zone são equivalentes.