最近在使用mysql創建觸發器時遇到了一個奇怪的問題,無法使用。
首先我按照官方文檔的步驟創建了一個簡單的觸發器:
CREATE TRIGGER `test_trigger` BEFORE INSERT ON `test_table` FOR EACH ROW BEGIN SET NEW.`test_column` = 'test_value'; END;
然而當我執行這個語句時,卻遇到了下面的錯誤:
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)
經過一番搜索,我發現這個問題是因為mysql需要super權限來創建觸發器,而我的賬戶并沒有這個權限。
為了解決這個問題,我試著修改了mysql的配置文件my.cnf,將log_bin_trust_function_creators設置為1,重新啟動了mysql服務。
[mysqld] log_bin_trust_function_creators = 1
然而,再次執行創建觸發器的語句時,我卻又遇到了新的錯誤:
ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you must have the SUPER privilege for this operation)
這個錯誤提示顯示我必須擁有super權限才能進行這個操作,看來修改配置并重啟無濟于事。
最后,我選擇向管理員申請super權限,才最終解決了這個問題。
總之,當你創建mysql觸發器時,需要注意是否擁有super權限,否則無法進行操作。