AFAIK、サーバーBからサーバーAに保存されているプロシージャを呼び出すことはできません。
私がすることは:
- 出力がテーブルに保存されるようにプロシージャを変更します。
-
mysqldump
を使用する この出力テーブルのデータをダンプして、他のサーバーに保存します。
例:
サーバーAでは、手順は次のようになります。
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 ;
サーバーBで、シェルで次のステートメントを実行します。MySQLCLIではありません :
mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B
ここで:
-
<options_A>
サーバーBからサーバーAに接続するために必要なオプション:
-h <IP of server A> -u <user> -p<password>
。 -
db_A
結果が保存されるサーバーAのデータベース -
<options_B>
サーバーBに接続するために必要なオプション:
-h localhost -u <user> -p<password>