Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso chiamare una stored procedure su un server MySQL Ubuntu remoto?

AFAIK, non puoi chiamare una procedura memorizzata nel server A dal server B.

Quello che farei è:

  1. Modifica la procedura in modo che l'output sia archiviato in una tabella.
  2. Usa mysqldump per scaricare i dati di questa tabella di output e archiviarli nell'altro server.

Esempio:

Sul server A, la procedura può essere simile a questa:

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 ;

Sul server B, esegui la seguente istruzione nella shell, non nella CLI MySQL :

mysqldump <options_A> db_A temp_result --no-create-db --add-drop-table | mysql <options_B> db_B

dove:

  • <options_A> Le opzioni necessarie per connettersi al server A dal server B:
    -h <IP of server A> -u <user> -p<password> .
  • db_A Il database nel server A in cui è archiviato il risultato
  • <options_B> Le opzioni necessarie per connettersi al server B:
    -h localhost -u <user> -p<password>