本文執行個體講述了MYSQL設定觸發器許可權的方法,針對許可權錯誤的情況非常實用。具體分析如下:
mysql匯入資料提示沒有SUPER Privilege許可權處理,如下所示:
ERROR 1419 (HY000): You do not have the SUPER Privilege and Binary Logging is Enabled
匯入function 、 trigger 到 MySQL database,報錯:
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)”.
原因:
function / trigger 中有dangerous statements修改資料庫,錯誤只在啟用binary logging選項進行主從複製的伺服器上出現。
解決方案如下:
1)匯入資料的使用者不僅需要CREATE ROUTINE, ALTER ROUTINE, CREATE TRIGGER, ALTER TRIGGER, CREATE FUNCTION 和 ALTER FUNCTION 許可權,還需要SUPER privileges 許可權,使用超級使用者匯入資料。
2)讓所有使用者具有執行類似functions的許可權,危險,不推薦,
o by specifying it on the server start, like: –log-bin-trust-function-creators=1 o by setting it to 1 through the SET GLOBAL statement, like:mysql> SET GLOBAL log_bin_trust_function_creators = 1;
3)如果不需要複製,或者是從庫,關閉binlog,
# binary logging – not required for slaves, but recommended#log-bin=mysql-bin# binary logging format – mixed recommended#binlog_format=mixed
希望本文所述對大家的MySQL資料庫設計有所協助。