最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL 創(chuàng)建函數(shù)出錯(cuò)的解決方案

 更新時(shí)間:2015年08月14日 15:40:09   作者:索探者  
在程序開(kāi)發(fā)過(guò)程中,大家有沒(méi)有遇到過(guò)mysql函數(shù)不能創(chuàng)建,我是遇到過(guò),是一個(gè)很麻煩的問(wèn)題,上網(wǎng)搜了些相關(guān)資料,整理在一起了,供大家參考,幫助那些需要幫助的朋友

在使用MySQL數(shù)據(jù)庫(kù)時(shí),有時(shí)會(huì)遇到MySQL函數(shù)不能創(chuàng)建的情況。下面就教您一個(gè)解決MySQL函數(shù)不能創(chuàng)建問(wèn)題的方法,供您借鑒參考。

案例一:

目前在項(xiàng)目中,執(zhí)行創(chuàng)建mysql的函數(shù)出錯(cuò),

mysql 創(chuàng)建函數(shù)出錯(cuò)信息如下:

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

首先檢查創(chuàng)建函數(shù)的功能是否開(kāi)啟,檢查是否開(kāi)啟創(chuàng)建功能的SQL如下:

-- 查看是否開(kāi)啟創(chuàng)建函數(shù)的功能
show variables like '%func%';
-- 開(kāi)啟創(chuàng)建函數(shù)的功能
set global log_bin_trust_function_creators = 1;

執(zhí)行完SQL之后發(fā)現(xiàn)已經(jīng)開(kāi)啟了,隨檢查自己的SQL是否寫(xiě)錯(cuò)(因?yàn)镾QL是別人給的,在別人環(huán)境沒(méi)問(wèn)題,在自己的環(huán)境就有可能)。

突然發(fā)現(xiàn)了確實(shí)是SQL出現(xiàn)問(wèn)題,由于他創(chuàng)建的SQL有指定用戶(hù),所以導(dǎo)致出現(xiàn)問(wèn)題,以下是他的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規(guī)范,可以發(fā)現(xiàn)就是DEFINER這個(gè)參數(shù)是可以指定數(shù)據(jù)庫(kù)用戶(hù)的,但是自己的庫(kù)卻不是這個(gè)用戶(hù),所以導(dǎo)致問(wèn)題。

目前問(wèn)題已經(jīng)解決。

-EOF-

案例二:

在MySQL創(chuàng)建用戶(hù)自定義函數(shù)時(shí),報(bào)以下錯(cuò)誤:

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)

這是因?yàn)橛幸粋€(gè)安全參數(shù)沒(méi)有開(kāi)啟,log_bin_trust_function_creators 默認(rèn)為0,是不允許function的同步的,開(kāi)啟這個(gè)參數(shù),就可以創(chuàng)建成功了。

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上開(kāi)啟了該參數(shù),記得在slave端也要開(kāi)啟這個(gè)參數(shù)(salve需要stop后再重新start),否則在master上創(chuàng)建函數(shù)會(huì)導(dǎo)致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) 

分析:

根據(jù)系統(tǒng)提示,導(dǎo)致該錯(cuò)誤的原因可能是一個(gè)安全設(shè)置方面的配置,查手冊(cè)log_bin_trust_function_creators參數(shù)缺省0,是不允許function的同步的,一般我們?cè)谂渲胷epliaction的時(shí)候,都忘記關(guān)注這個(gè)參數(shù),這樣在master更新funtion后,slave就會(huì)報(bào)告錯(cuò)誤,然后slave stoped。

處理過(guò)程:

登陸mysql數(shù)據(jù)庫(kù)

> set global log_bin_trust_function_creators = 1;
> start slave;

跟蹤mysql的啟動(dòng)日志,slave正常運(yùn)行,問(wèn)題解決。

相關(guān)文章

  • 解決MySql8.0 查看事務(wù)隔離級(jí)別報(bào)錯(cuò)的問(wèn)題

    解決MySql8.0 查看事務(wù)隔離級(jí)別報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了解決MySql8.0 查看事務(wù)隔離級(jí)別報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟

    在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟

    打工人奉旨制作數(shù)據(jù)庫(kù)服務(wù)的虛擬機(jī)模板,模板中包含各種數(shù)據(jù)庫(kù),其中mysql需要具備5.7及8.0兩個(gè)版本,并保證服務(wù)能正常同時(shí)使用,所以本文給小編介紹了在同一Linux下安裝兩個(gè)版本的MySQL的流程步驟,需要的朋友可以參考下
    2024-03-03
  • MYSQL 淺談MyISAM 存儲(chǔ)引擎

    MYSQL 淺談MyISAM 存儲(chǔ)引擎

    mysql中用的最多存儲(chǔ)引擎就是innodb和myisam。做為Mysql的默認(rèn)存儲(chǔ)引擎,myisam值得我們學(xué)習(xí)一下,以下是我對(duì)《高性能MYSQL》書(shū)中提到的myisam的理解,請(qǐng)大家多多指教
    2012-04-04
  • Mysql5.7在Centos6中的安裝方法

    Mysql5.7在Centos6中的安裝方法

    這篇文章主要介紹了Mysql5.7在Centos6中的安裝方法,需要的朋友可以參考下
    2017-06-06
  • mysql學(xué)習(xí)筆記之幫助文檔

    mysql學(xué)習(xí)筆記之幫助文檔

    本文給大家詳細(xì)講述的是mysql的help(幫助)命令的用法,非常細(xì)致,有需要的小伙伴可以來(lái)參考下
    2017-02-02
  • mysql 8.0.15 壓縮版安裝圖文教程

    mysql 8.0.15 壓縮版安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.15 壓縮版安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • SQL數(shù)據(jù)庫(kù)十四種案例介紹

    SQL數(shù)據(jù)庫(kù)十四種案例介紹

    大家好,本篇文章主要講的是SQL數(shù)據(jù)庫(kù)十四種案例介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • MySQL索引失效原理

    MySQL索引失效原理

    索引可以加快查找速度是因?yàn)椋诿恳粚拥男值芄?jié)點(diǎn)之間,索引是有序的,因此可以通過(guò)二分法快速定位到相應(yīng)位置。如果一些操作破壞了索引排列的有序性或者不能利用索引的有序性,這個(gè)索引自然就失效了,下文更詳細(xì)說(shuō)明,需要的朋友可以參考一下
    2021-12-12
  • MySQL中索引優(yōu)化distinct語(yǔ)句及distinct的多字段操作

    MySQL中索引優(yōu)化distinct語(yǔ)句及distinct的多字段操作

    這篇文章主要介紹了MySQL中索引優(yōu)化distinct語(yǔ)句及distinct的多字段操作方法,distinct語(yǔ)句去重功能的使用是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • Mysql怎么存儲(chǔ)json格式數(shù)據(jù)詳解

    Mysql怎么存儲(chǔ)json格式數(shù)據(jù)詳解

    在開(kāi)發(fā)中遇到存取html值的情況,并且要根據(jù)id進(jìn)行實(shí)時(shí)返回,在做的時(shí)候想到了mysql的json類(lèi)型存儲(chǔ),下面這篇文章主要給大家介紹了關(guān)于Mysql怎么存儲(chǔ)json格式數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

红原县| 天峻县| 丽水市| 庄河市| 兴国县| 盐池县| 玉环县| 微博| 肇庆市| 逊克县| 独山县| 黑龙江省| 乐都县| 嘉兴市| 墨玉县| 洪泽县| 宕昌县| 景德镇市| 南投县| 盖州市| 湘潭县| 苍溪县| 平山县| 三原县| 金堂县| 揭阳市| 田阳县| 伊金霍洛旗| 庆云县| 东城区| 凤阳县| 宜兰市| 红安县| 新郑市| 东方市| 肃北| 高清| 长海县| 木兰县| 改则县| 青阳县|