AFAIK, Anda tidak dapat memanggil prosedur yang disimpan di server A dari server B.
Yang akan saya lakukan adalah:
- Ubah prosedur sehingga output disimpan dalam tabel.
- Gunakan
mysqldump
untuk membuang data dari tabel keluaran ini dan menyimpannya di server lain.
Contoh:
Di server A, prosedurnya bisa seperti ini:
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 ;
Di server B, jalankan pernyataan berikut di shell, bukan di MySQL CLI :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
dimana:
<options_A>
Opsi yang diperlukan untuk terhubung ke server A dari server B:-h <IP of server A> -u <user> -p<password>
.db_A
Database di server A tempat menyimpan hasil<options_B>
Opsi yang diperlukan untuk terhubung ke server B:-h localhost -u <user> -p<password>