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>