AFAIK, आप सर्वर ए में सर्वर बी से संग्रहीत प्रक्रिया को कॉल नहीं कर सकते हैं।
मैं क्या करूँगा:
- प्रक्रिया को संशोधित करें ताकि आउटपुट तालिका में संग्रहीत हो।
mysqldumpका उपयोग करें इस आउटपुट टेबल के डेटा को डंप करने और दूसरे सर्वर में स्टोर करने के लिए।
उदाहरण:
सर्वर A पर, प्रक्रिया कुछ इस तरह हो सकती है:
delimiter $$
create procedure my_procedure()
begin
-- Create a table to store the output:
drop table if exists temp_result;
create table temp_result (
CID int not null primary key,
name varchar(50)
);
-- Populate the table
insert into temp_result
select ...
end $$
delimiter ;
सर्वर B पर, निम्न कथन को शेल में निष्पादित करें, MySQL CLI में नहीं :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
कहा पे:
<options_A>सर्वर B से सर्वर A से कनेक्ट करने के लिए आवश्यक विकल्प:-h <IP of server A> -u <user> -p<password>।db_Aसर्वर ए में डेटाबेस जहां परिणाम संग्रहीत किया जाता है<options_B>सर्वर B से कनेक्ट करने के लिए आवश्यक विकल्प:-h localhost -u <user> -p<password>