Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да извика процедура всеки път, когато mysql връзка е създадена на Amazon RDS

Вие сте на прав път, но сте разбрали погрешно една стъпка, поради двусмислено формулиране в другия отговор:

И така, по същество правите това:

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

Но вместо това трябва да правите това:

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

Това не е MySQL оператор, а команда на обвивката. RDS екземпляри нямат достъп до обвивка, така че имате нужда от друга машина, на която да изпълните тази команда. Обикновено това може да е EC2 екземпляр, така че предполагам, че това е имал предвид авторът на другия мениджър под „вашият екземпляр“, но може да е всяка машина, която има Инсталирани инструменти за интерфейс на командния ред на RDS .

Можете също да направите това от RDS Console a> .

Имайте предвид също, че можете да направите това малко по-сбито, избягвайки напълно съхранената процедура и дори теста за rdsadmin , като зададете init_connect до:

SET @@time_zone = '+5:30'

rdsadmin потребителят трябва да е имунизиран срещу init_connect защото има SUPER привилегия.

Ако предпочитате да тествате за rdsadmin както и да е...

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

Задаването на променлива на същата променлива оставя стойността непроменена.

Забележка @@time_zone и SESSION time_zone са еквивалентни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ускоряване на (бавна) огромна база данни на WordPress

  2. функция за изграждане на часови зони в уеб приложение на PHP

  3. JSON_ARRAYAGG() – Създайте JSON масив от редовете на заявка в MySQL

  4. Бройте главни букви в низ

  5. Не може да се намери клас [org.springframework.orm.hibernate5.LocalSessionFactoryBean] за bean с име 'hibernate5AnnotatedSessionFactory'