AFAIK, не можете да извикате процедура, съхранена в сървър A от сървър B.
Това, което бих направил е:
- Променете процедурата, така че изходът да се съхранява в таблица.
- Използвайте
mysqldump
за да изхвърлите данните от тази изходна таблица и да ги съхраните на другия сървър.
Пример:
На сървър А процедурата може да бъде нещо подобно:
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
където:
Опциите, необходими за свързване към сървър A от сървър B:-h
-u <потребител> -p<парола>код> . db_A
Базата данни в сървър А, където се съхранява резултатът
Опциите, необходими за свързване към сървър B:-h localhost -u
-p