sql >> Database >  >> RDS >> Mysql

Hoe kan ik een opgeslagen procedure aanroepen op een externe MySQL Ubuntu-server?

AFAIK, je kunt een procedure die is opgeslagen op server A niet oproepen vanaf server B.

Wat ik zou doen is:

  1. Wijzig de procedure zodat de uitvoer in een tabel wordt opgeslagen.
  2. Gebruik mysqldump om de gegevens van deze uitvoertabel te dumpen en op te slaan op de andere server.

Voorbeeld:

Op server A kan de procedure ongeveer als volgt zijn:

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 ;

Voer op server B de volgende instructie uit in de shell, niet in MySQL CLI :

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

waar:

  • <options_A> De opties die nodig zijn om verbinding te maken met server A vanaf server B:
    -h <IP of server A> -u <user> -p<password> .
  • db_A De database op server A waar het resultaat wordt opgeslagen
  • <options_B> De opties die nodig zijn om verbinding te maken met server B:
    -h localhost -u <user> -p<password>


  1. mysql pivot-queryresultaten met GROUP BY

  2. Unicode-tekens (Grieks) worden in de database opgeslagen, zoals ??????

  3. Hoe verander je een string in een datum tijdens het importeren met Sequel Pro?

  4. Prestatievraag:OP DUPLICATE KEY UPDATE vs UPDATE (MySQL)