Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wywołać procedurę przy każdym połączeniu mysql utworzonym na amazon RDS

Jesteś na dobrej drodze, ale źle zrozumiałeś jeden krok z powodu niejednoznacznego sformułowania w drugiej odpowiedzi:

Tak więc zasadniczo robisz to:

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

Ale zamiast tego powinieneś to zrobić:

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

To nie jest instrukcja MySQL, to polecenie powłoki. Instancje RDS nie mają dostępu do powłoki, więc do uruchomienia tego polecenia potrzebny jest inny komputer. Zazwyczaj może to być instancja EC2, więc zakładam, że to właśnie autor drugiego menedżera miał na myśli, mówiąc „twoja instancja”, ale może to być dowolna maszyna, która ma Zainstalowane narzędzia wiersza poleceń RDS .

Możesz to również zrobić w konsoli RDS .

Zauważ również, że możesz to zrobić nieco bardziej zwięźle, całkowicie unikając procedury składowanej, a nawet testu dla rdsadmin , ustawiając init_connect do:

SET @@time_zone = '+5:30'

rdsadmin użytkownik powinien być odporny na init_connect ponieważ ma SUPER przywilej.

Jeśli wolisz testować dla rdsadmin w każdym razie...

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

Ustawienie zmiennej na tę samą zmienną pozostawia wartość niezmienioną.

Uwaga @@time_zone i SESSION time_zone są równoważne.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Praca z MyISAM w MySQL

  2. MySQL DATEDIFF() vs TIMEDIFF():Jaka jest różnica?

  3. Przyspieszenie liczenia wierszy w MySQL

  4. Migracja MySQL do SQL Server

  5. O użyciu ini_set('max_execution_time', 0);