六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

MYSQL創建函數出錯怎么處理

[摘要]在使用MySQL數據庫時,有時會遇到MySQL函數不能創建的情況。下面就教您一個解決MySQL函數不能創建問題的方法,供您借鑒參考。希望能幫助到大家。案例一:目前在項目中,執行創建mysql的函數出...
在使用MySQL數據庫時,有時會遇到MySQL函數不能創建的情況。下面就教您一個解決MySQL函數不能創建問題的方法,供您借鑒參考。希望能幫助到大家。

案例一:

目前在項目中,執行創建mysql的函數出錯,

mysql 創建函數出錯信息如下:

Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation

首先檢查創建函數的功能是否開啟,檢查是否開啟創建功能的SQL如下:

-- 查看是否開啟創建函數的功能
show variables like '%func%';
-- 開啟創建函數的功能
set global log_bin_trust_function_creators = 1;

執行完SQL之后發現已經開啟了,隨檢查自己的SQL是否寫錯(因為SQL是別人給的,在別人環境沒問題,在自己的環境就有可能)。

突然發現了確實是SQL出現問題,由于他創建的SQL有指定用戶,所以導致出現問題,以下是他的SQL:

DROP FUNCTION IF EXISTS `nextval`;
DELIMITER ;;
CREATE DEFINER=`devop`@`%` FUNCTION `nextval`(`seq_name` VARCHAR(50)) RETURNS varchar(20) CHARSET utf8
BEGIN 
 DECLARE seq_max BIGINT(20);
 UPDATE sequenceconftable SET `max` = `max` + NEXT WHERE NAME = seq_name; 
 SELECT `max` INTO seq_max FROM sequenceconftable WHERE NAME = seq_name ;
 RETURN seq_max; 
END
;;
DELIMITER ;

由于CREATE_FUNCTION規范,可以發現就是DEFINER這個參數是可以指定數據庫用戶的,但是自己的庫卻不是這個用戶,所以導致問題。

目前問題已經解決。

-EOF-

案例二:

在MySQL創建用戶自定義函數時,報以下錯誤:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

這是因為有一個安全參數沒有開啟,log_bin_trust_function_creators 默認為0,是不允許function的同步的,開啟這個參數,就可以創建成功了。

mysql> show variables like '%fun%'; 
+---------------------------------+-------+ 
  Variable_name       Value   
+---------------------------------+-------+ 
  log_bin_trust_function_creators   ON   
+---------------------------------+-------+ 
1 row in set (0.00 sec) 
 
mysql> set global log_bin_trust_function_creators=1;        
Query OK, 0 rows affected (0.00 sec) 
 
mysql> show variables like '%fun%';            
+---------------------------------+-------+ 
  Variable_name       Value   
+---------------------------------+-------+ 
  log_bin_trust_function_creators   ON   
+---------------------------------+-------+ 
1 row in set (0.00 sec)

如果是在有master上開啟了該參數,記得在slave端也要開啟這個參數(salve需要stop后再重新start),否則在master上創建函數會導致replaction中斷。

案例三:

Error Code : 1418

This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)  
(0 ms taken)

分析:

根據系統提示,導致該錯誤的原因可能是一個安全設置方面的配置,查手冊log_bin_trust_function_creators參數缺省0,是不允許function的同步的,一般我們在配置repliaction的時候,都忘記關注這個參數,這樣在master更新funtion后,slave就會報告錯誤,然后slave stoped。

處理過程:

登陸mysql數據庫

> set global log_bin_trust_function_creators = 1;
> start slave;

跟蹤mysql的啟動日志,slave正常運行,問題解決。

相關推薦:

mysql創建函數出現1418錯誤的解決辦法

mysql-php連接數據庫出錯,什么原因

Mysql 數據遷移后 啟動出錯

以上就是MYSQL創建函數出錯如何解決的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 青青草久久 | 亚洲aa视频| 天天天操天天天干 | 在线看亚洲 | 中文精品视频一区二区在线观看 | 欧美天天视频 | 日本视频免费播放 | 日韩福利视频高清免费看 | 日韩精品在线观看免费 | 色狠狠色综合久久8狠狠色 色狠狠色综合吹潮 | 日本亚洲欧美国产日韩ay高清 | 欧洲亚洲精品 | 亚洲精品第三页 | 天天色天天干天天 | 欧美一级淫片aaaaaaa视频 | 日韩成人在线视频 | 青娱乐最新网站 | 天天舔天天射天天操 | 日韩欧美视频一区 | 午夜影院普通 | 欧美一级二级三级 | 四虎8848精品永久在线观看 | 欧美一级做一级爱a做片性 欧美一级做一a做片性视频 | 亚洲免费精品视频 | 亚洲人成在线播放网站 | 手机在线观看mv网址 | 日本欧美一区二区三区视频麻豆 | 亚洲第一福利视频 | 色久月| 色91视频| 色手机在线 | 日韩三级精品 | 午夜激情视频专区在线观看网站大全 | 四虎影院紧急入口 | 日韩专区第一页 | 夜夜网站| 一二三四影院网在线观看免费 | 在线观看亚洲国产 | 日本 韩国 三级 国产 欧美 | 天天爱夜夜爱 | 欧美做a一级视频免费观看 欧美坐爱视频 |