第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在開啟了log-bin的MySQL Server中創(chuàng)建FUNCTION?

如何在開啟了log-bin的MySQL Server中創(chuàng)建FUNCTION?

如何在開啟了log-bin的MySQL Server中創(chuàng)建FUNCTION
查看完整描述

1 回答

?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

  在MySQL主從復(fù)制機(jī)器的master的數(shù)據(jù)庫中創(chuàng)建function,報(bào)出如下錯(cuò)誤:
  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)
  原來是因?yàn)樵谥鲝膹?fù)制的兩臺(tái)MySQL服務(wù)器中開啟了二進(jìn)制日志選項(xiàng)log-bin,slave會(huì)從master復(fù)制數(shù)據(jù),而一些操作,比如function所得的結(jié)果在master和slave上可能不同,所以存在潛在的安全隱患。因此,在默認(rèn)情況下回阻止function的創(chuàng)建。
  有兩種辦法來解決這一問題
1.將log_bin_trust_function_creators參數(shù)設(shè)置為ON,這樣一來開啟了log-bin的MySQL Server便可以隨意創(chuàng)建function。這里存在潛在的數(shù)據(jù)安全問題,除非明確的知道創(chuàng)建的function在master和slave上的行為完全一致。
  設(shè)置該參數(shù)可以用動(dòng)態(tài)的方式或者指定該參數(shù)來啟動(dòng)數(shù)據(jù)庫服務(wù)器或者修改配置文件后重啟服務(wù)器。需注意的是,動(dòng)態(tài)設(shè)置的方式會(huì)在服務(wù)器重啟后失效。
mysql> show variables like 'log_bin_trust_function_creators';
mysql> set global log_bin_trust_function_creators=1;
  另外如果是在master上創(chuàng)建函數(shù),想通過主從復(fù)制的方式將函數(shù)復(fù)制到slave上則也需在開啟了log-bin的slave中設(shè)置上述變量的值為ON(變量的設(shè)置不會(huì)從master復(fù)制到slave上,這點(diǎn)需要注意),否則主從復(fù)制會(huì)報(bào)錯(cuò)。

2.明確指明函數(shù)的類型
1 DETERMINISTIC 不確定的
2 NO SQL 沒有SQl語句,當(dāng)然也不會(huì)修改數(shù)據(jù)
3 READS SQL DATA 只是讀取數(shù)據(jù),當(dāng)然也不會(huì)修改數(shù)據(jù)
  比如:CREATE DEFINER=`username`@`%` READS SQL DATA FUNCTION `fn_getitemclock`(i_itemid bigint,i_clock int,i_pos int) RETURNS int(11)...
這樣一來相當(dāng)于明確的告知MySQL服務(wù)器這個(gè)函數(shù)不會(huì)修改數(shù)據(jù),因此可以在開啟了log-bin的服務(wù)器上安全的創(chuàng)建并被復(fù)制到開啟了log-bin的slave上。

 


查看完整回答
反對(duì) 回復(fù) 2019-01-10
  • 1 回答
  • 0 關(guān)注
  • 708 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)