在phpMyAdmin 中建立函數:解決拒絕存取錯誤
使用SELECT 語句、INSERT INTO 語句或PHP 腳本時,可能會出現困難將MySQL 函數匯入phpMyAdmin。可能會出現錯誤訊息,指示「存取被拒絕;您需要超級權限才能執行此操作」。要解決此問題,需要詳細檢查問題和潛在的解決方案。
問題摘要:
嘗試將函數匯入 phpMyAdmin 時出現錯誤,但缺少必要的權限。預設情況下,使用者不擁有特定操作所需的 SUPER 權限。導致此錯誤的兩個主要原因是:
解決方案 1:刪除 DEFINER 子句
DEFINER 子句向特定使用者或角色授予特殊執行權限。若要避免該錯誤,請修改函數建立語句以刪除 DEFINER 子句。
示例:
帶有DEFINER 的原始函數:
CREATE DEFINER=`journal`@`%` FUNCTION `f_calc_gst` (...)
沒有DEFINER的修改函數:
CREATE FUNCTION `f_calc_gst` (...)
解決方案2:設定分隔符號欄位
phpMyAdmin需要一個分隔符號欄位來指示SQL語句的結束。如果不配置該字段,將會出現錯誤。若要設定分隔符,請找到 SQL 文字方塊下方的「分隔符」欄位並輸入 ;作為分隔符號。
其他提示:
結論:
透過刪除DEFINER 子句並正確配置分隔符字段,可以解決在phpMyAdmin 中建立函數時出現的「存取被拒絕」錯誤。這些步驟允許使用者建立和匯入函數,而不會遇到與權限相關的錯誤。
以上是為什麼在 phpMyAdmin 中建立函數時出現「存取被拒絕」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!