AFAIK, nemůžete volat proceduru uloženou na serveru A ze serveru B.
Co bych udělal, je:
- Upravte postup tak, aby byl výstup uložen v tabulce.
- Použijte
mysqldump
vypsat data této výstupní tabulky a uložit je na jiný server.
Příklad:
Na serveru A může být postup podobný tomuto:
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 ;
Na serveru B proveďte následující příkaz v shellu, ne v MySQL CLI :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
kde:
Možnosti potřebné pro připojení k serveru A ze serveru B:-h
-u -p . db_A
Databáze na serveru A, kde je uložen výsledek
Možnosti potřebné pro připojení k serveru B:-h localhost -u
-p