AFAIK, você não pode chamar um procedimento armazenado no servidor A do servidor B.
O que eu faria é:
- Modifique o procedimento para que a saída seja armazenada em uma tabela.
- Usar
mysqldump
para despejar os dados desta tabela de saída e armazená-los no outro servidor.
Exemplo:
No servidor A, o procedimento pode ser algo assim:
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 ;
No servidor B, execute a seguinte instrução no shell, não na CLI do MySQL :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
Onde:
<options_A>
As opções necessárias para se conectar ao servidor A do servidor B:-h <IP of server A> -u <user> -p<password>
.db_A
O banco de dados no servidor A onde o resultado é armazenado<options_B>
As opções necessárias para se conectar ao servidor B:-h localhost -u <user> -p<password>