Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để gọi một thủ tục được lưu trữ trên máy chủ MySQL Ubuntu từ xa?

AFAIK, bạn không thể gọi một thủ tục được lưu trữ trong máy chủ A từ máy chủ B.

Những gì tôi muốn làm là:

  1. Sửa đổi quy trình để đầu ra được lưu trữ trong bảng.
  2. Sử dụng mysqldump để kết xuất dữ liệu của bảng đầu ra này và lưu trữ trong máy chủ khác.

Ví dụ:

Trên máy chủ A, quy trình có thể giống như sau:

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 ;

Trên máy chủ B, thực thi câu lệnh sau trong shell, không phải trong MySQL CLI :

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

ở đâu:

  • <options_A> Các tùy chọn cần thiết để kết nối với máy chủ A từ máy chủ B:
    -h <IP of server A> -u <user> -p<password> .
  • db_A Cơ sở dữ liệu trong máy chủ A nơi lưu trữ kết quả
  • <options_B> Các tùy chọn cần thiết để kết nối với máy chủ B:
    -h localhost -u <user> -p<password>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dịch vụ web RESTful:java.lang.NullPointerException service.AbstractFacade.findAll

  2. Hàm mysql_escape_string () không được dùng nữa hãy sử dụng mysql_real_escape_string () Codeigniter

  3. Kết nối từ xa Mysql Ubuntu - địa chỉ liên kết không thành công

  4. MySQL có cho phép gọi lại trong C để khi thay đổi xảy ra, tôi có thể được thông báo không?

  5. Tại sao Rails lại thêm `OR 1 =0` vào các truy vấn bằng cách sử dụng cú pháp băm mệnh đề where với một phạm vi?