Beim Versuch, einen Trigger in RDS zu erstellen, erhalte ich die folgende Fehlermeldung:
ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is
enabled (you *might* want to use the less safe log_bin_trust_function_creators
variable)
Gibt es eine Möglichkeit, SUPER-Berechtigungen zu erhalten oder die binäre Protokollierung zu deaktivieren?
Antwort1
Ich weiß nicht, ob es eine Möglichkeit gibt, SUPER-Berechtigungen zu erhalten, aber es gibt eine Möglichkeit, die binäre Protokollierung zu deaktivieren (wodurch die Notwendigkeit von SUPER-Berechtigungen zum Erstellen von Triggern entfällt). Dies geschieht durch Setzen der Variablelog_bin_trust_create_function_creatorsbis 1.
- Erstellen einer neuen RDS-ParametergruppeAlternativ können Sie Ihre aktuelle Parametergruppe ändern (sofern es sich nicht um die Standardparametergruppe handelt) und die Schritte 3 bis 5 überspringen.
- Ändern Sie den Wert
log_bin_trust_create_function_creators
für diese Parametergruppe auf 1 - Ändern Sie auch alle Parameter, die keine Standardwerte in der Parametergruppe haben, die Ihre RDS-Instanz derzeit verwendet. Dies ist notwendig, da eine RDS-Instanz nur einer Parametergruppe zugeordnet werden kann.
- Passen Sie Ihre RDS-Instanz so an, dass sie Ihre neue Parametergruppe verwendet.
- Warten Sie, bis die Änderung der Parametergruppe im Ereignisprotokoll angezeigt wird
- Starten Sie die RDS-Instanz neu.
log_bin_trust_create_function_creators
ist als dynamische Variable gekennzeichnet und sollte daher keinen Neustart erfordern, aber ich musste die RDS-Instanz immer neu starten, damit die Änderung wirksam wurde. Vielleicht gibt es einen anderen Weg, aber ich habe ihn nicht gefunden.