AFAIK, no puede llamar a un procedimiento almacenado en el servidor A desde el servidor B.
Lo que haría es:
- Modifique el procedimiento para que la salida se almacene en una tabla.
- Utilice
mysqldump
para volcar los datos de esta tabla de salida y almacenarlos en el otro servidor.
Ejemplo:
En el servidor A, el procedimiento puede ser algo como esto:
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 ;
En el servidor B, ejecute la siguiente declaración en el shell, no en MySQL CLI :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
donde:
<options_A>
Las opciones necesarias para conectarse al servidor A desde el servidor B:-h <IP of server A> -u <user> -p<password>
.db_A
La base de datos en el servidor A donde se almacena el resultado<options_B>
Las opciones necesarias para conectarse al servidor B:-h localhost -u <user> -p<password>