我的開發人員和我在共享的MySQL開發數據庫上有自己的開發模式。我的任務要求我在我的模式中創建觸發器,但迄今爲止我一直沒有成功。無法在5.1.32上創建具有TRIGGER特權的MySQL觸發器
CREATE TRIGGER myTrigger AFTER DELETE on myTable
FOR EACH ROW BEGIN
-- DO STUFF
END;
MySQL的說: ERROR 1419(HY000):你沒有SUPER權限和二進制日誌功能已啓用(你可能希望使用不太安全log_bin_trust_function_creators變量)
我查了MySQL手冊(http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html):
TRIGGER權限使您能夠創建和刪除觸發器。您必須擁有該表的特權才能創建或刪除該表的觸發器。這個特權是在MySQL 5.1.6中添加的。 (在此之前的MySQL 5.1.6,觸發操作所需的SUPER權限。)
我們正在運行「5.1.32企業GPL的先進日誌」,所以TRIGGER權限應該是足夠的;但是,DBA授予我mySchema
*上的TRIGGER特權,並且在做SHOW GRANTS時我可以看到它,但我仍然遇到需要「超級」特權的錯誤。我們不想讓所有的開發者超級。
有什麼建議嗎?
感謝您的鏈接。 DBA將僅在開發服務器上使用log-bin-trust-function-creators選項運行,而不是發出SUPER。 – 2009-10-27 15:10:10
MySQL錯誤#52127表示,如果您啓用了二進制日誌記錄,則不允許用戶在未授予SUPER權限的情況下添加觸發器。 – 2011-02-10 06:30:27
值得一提的是,如果您使用複製,此錯誤實際上非常有用,因爲它可以防止您無意中創建在複製設置中不起作用的觸發器。 一個例子就是你將RAND()這樣的東西用作觸發器的一部分。 – coatesap 2013-10-15 15:52:52