sql >> データベース >  >> RDS >> Mysql

リモートのMySQLUbuntuサーバーでストアドプロシージャを呼び出すにはどうすればよいですか?

    AFAIK、サーバーBからサーバーAに保存されているプロシージャを呼び出すことはできません。

    私がすることは:

    1. 出力がテーブルに保存されるようにプロシージャを変更します。
    2. 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>


    1. データベースパスワードを保存するためのベストプラクティス

    2. PDOを使用して各ページが読み込まれるクエリの数をカウントする

    3. タグ付けシステム:Toxiソリューションの質問

    4. リアルタイムの運用分析と非クラスター化列ストアインデックス