AFAIK, vous ne pouvez pas appeler une procédure stockée dans le serveur A à partir du serveur B.
Ce que je ferais, c'est :
- Modifiez la procédure afin que la sortie soit stockée dans une table.
- Utilisez
mysqldump
pour vider les données de cette table de sortie et les stocker dans l'autre serveur.
Exemple :
Sur le serveur A, la procédure peut ressembler à ceci :
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 ;
Sur le serveur B, exécutez l'instruction suivante dans le shell, pas dans MySQL CLI :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
où :
<options_A>
Les options nécessaires pour se connecter au serveur A depuis le serveur B :-h <IP of server A> -u <user> -p<password>
.db_A
La base de données du serveur A où le résultat est stocké<options_B>
Les options nécessaires pour se connecter au serveur B :-h localhost -u <user> -p<password>