Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę wywołać procedurę składowaną na zdalnym serwerze MySQL Ubuntu?

AFAIK, nie możesz wywołać procedury przechowywanej na serwerze A z serwera B.

Co bym zrobił to:

  1. Zmodyfikuj procedurę, aby dane wyjściowe były przechowywane w tabeli.
  2. Użyj mysqldump aby zrzucić dane z tej tabeli wyjściowej i zapisać je na innym serwerze.

Przykład:

Na serwerze A procedura może wyglądać mniej więcej tak:

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 serwerze B wykonaj następującą instrukcję w powłoce, nie w MySQL CLI :

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

gdzie:

  • Opcje potrzebne do połączenia się z serwerem A z serwera B:
    -h -u -p .
  • db_A Baza danych na serwerze A, na której przechowywane są wyniki
  • Opcje potrzebne do połączenia z serwerem B:
    -h localhost -u -p


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:WYBIERZ zwycięzcę, zwracając jego rangę

  2. zmiana formatu daty MySql

  3. mysqldump całą strukturę, ale tylko dane z wybranych tabel w jednym poleceniu

  4. Jaki jest najszybszy sposób na zrzucenie i załadowanie bazy danych MySQL InnoDB przy użyciu mysqldump?

  5. Importuj duży plik MySQL .sql w systemie Windows za pomocą Force