mysql開啟bin-log后,調(diào)用存儲過程或者函數(shù)以及觸發(fā)器是就會出現(xiàn)1418錯誤的原因造成mysql調(diào)用存儲函數(shù)沒有結(jié)果。根據(jù)查詢相關(guān)公開信息顯示,修改globallog,bin,trust,function,creators就可以了。

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務宗旨!把網(wǎng)站當作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡推廣、探索永無止境。
背景
在上一篇推文中,我們介紹了 MySQL Group Replication 8.0.16 支持信息碎片化功能來增強大型事務處理能力。
如果您想在組復制中使用該功能,則任何組成員的版本都不能低于 8.0.16!
簡單地說就是由于低版本協(xié)議上不支持。MySQL 8.0.16 的組通訊開始支持新協(xié)議,簡稱“分段協(xié)議”,之前的版本中只有一種“壓縮協(xié)議”。
如果多個成員想加入復制組,那么在協(xié)議匹配上遵循以下原則:
現(xiàn)有復制組成員和新加入成員版本相同,加入成功。
低版本成員想加入高版本的組會被驅(qū)逐,加入失敗。
高版本的成員想加入低版本的組,單獨加入成功,多個加入失敗。
例如:
一個 MySQL Server 8.0.16 實例可以成功加入使用通信協(xié)議版本 5.7.24 的組。
一個 MySQL Server 5.7.24 實例無法成功加入使用通信協(xié)議版本 8.0.16 的組。
兩個 MySQL Server 8.0.16 實例無法同時加入使用通信協(xié)議版本 5.7.24 的組。
兩個 MySQL Server 8.0.16 實例可以同時加入使用通信協(xié)議版本 8.0.16 的組。
新增 UDF
為了能讓高版本的復制組更便于加入低版本的成員,MySQL 8.0.16 新增兩個 UDF。
您可以使用兩個新的 UDF 命令去管理組通信協(xié)議:
1. group_replication_set_communication_protocol(new_protocol)
設(shè)置組復制通訊協(xié)議版本
SELECT group_replication_set_communication_protocol("8.0.15");
填入一個所有成員都支持的版本號,即:new_protocol ≤ 所有成員的 MySQL版本。
new_protocol 格式:major.minor.patch (主版本號.次版本號.發(fā)布版本號)例如:8.0.15。
2. group_replication_get_communication_protocol()
獲取復制中最舊成員的 MySQL 版本號
SELECT group_replication_get_communication_protocol(); ? ?+------------------------------------------------+ ? ?| group_replication_get_communication_protocol() | ? ?+------------------------------------------------+ ? ?| 5.7.14 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?+------------------------------------------------+
獲取的版本號可能與設(shè)置的值不一致,但不一致的版本之間組復制協(xié)議是一樣的。
返回結(jié)果格式:major.minor.patch (主版本號.次版本號.發(fā)布版本號)例如:8.0.15。
以上兩個 UDF 對全部組成員有效,主機或從機上均可執(zhí)行。
結(jié)論
若想使用信息碎片功能。建議將組復制成員全部升級為 8.0.16。
若組內(nèi)成員版本僅有部分為 8.0.16,可以用兩個新的函數(shù)來讓高版本的成員保持與其它成員組協(xié)議一致。
請點擊輸入圖片描述
create function 函數(shù)名稱(參數(shù)列表)
reurns 返回值類型
函數(shù)體
執(zhí)行的方法很簡單:
加載
** create function 函數(shù)名稱 returns {string|real|integer}
** soname 你定義的動態(tài)庫位置
釋放!
** drop function 函數(shù)名稱
創(chuàng)建存儲過程
mysql
delimiter
$
--
delimiter
$是設(shè)置
$為命令終止符號,代替默認的分號,因為分號有其他用處.
mysql
create
procedure
sp_test(IN
pi_id
int,
OUT
po_name
varchar(10))
-
begin
-
select
*
from
test.tb_test;
-
select
tb_test.name
into
po_name
from
test.tb_test
where
tb_test.id
=
pi_id;
-
end
-
$
Query
OK,
rows
affected
(0.00
sec)
mysql
delimiter
;
--
恢復分號作為分隔終止符號
5.調(diào)用存儲過程
mysql
set
@po_name=';
Query
OK,
rows
affected
(0.00
sec)
mysql
call
sp_test(1,@po_name);
分享題目:mysql怎么調(diào)用函數(shù) mysql如何調(diào)用函數(shù)
文章源于:http://chinadenli.net/article46/ddocpeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)建站、網(wǎng)站建設(shè)、網(wǎng)站維護、微信公眾號、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)