簡體   English   中英

PHP Laravel-如何通過SSH動態連接到MySQL數據庫

[英]PHP Laravel - How to dynamically connect Via SSH to a MySQL database

目前,我能夠通過作業動態連接到mysql或postgres數據庫,執行選擇語句,然后導出到excel電子表格:

  DB::purge("$connectionName");

    if($Driver == "mysql"){
        $charset = "utf8mb4";
    } else if($Driver == "pgsql"){
        $charset = "utf8";
    } else{
        $charset = "";
    }

    Config::set("database.connections.$connectionName", [
        "driver" => "$Driver",
        "port" => "$Port",
        "host" => "$Host",
        "database" => "$DBName",
        "username" => "$UserName",
        "password" => "$Password",
        'charset' => "$charset"
    ]);

    $query = DB::connection("$connectionName")->select($statement);
    $q_raw = $query;

    $rowCount = count($query);

    $query= json_decode( json_encode($query), true);

    $filename_e = $filename.'-'.$range.'-^^-'.$mytime;


    if($rowCount == 0){

        $pdo = DB::connection($connectionName)->getPdo();
        $select = $pdo->query($statement);

        $colcount = $select->columnCount();

        $meta = $select->getColumnMeta(0);

        for ($i = 0; $i < $colcount; ++$i) {
            $query[] = $select->getColumnMeta($i)['name'];
        }


    }

    Excel::create($filename_e, function($excel) use ($query, $filename) {

        $excel->sheet($filename, function($sheet) use ($query){
            $sheet->fromArray($query);
        });

    })->store('xls', storage_path('excel/exports'));

    $filepath = storage_path('excel/exports').'/'.$filename_e.'.xls';

我需要執行此操作的能力,但是需要使用上傳的SSH密鑰等通過SSH連接到MySQL服務器。

任何幫助表示贊賞。

您有兩個選擇。 一種簡單的方法是在安裝PHP的服務器上創建ssh隧道,然后更新Laravel配置設置。 您可以在此處找到示例http://quintagroup.com/services/support/tutorials/mysql-linux

另一個選擇是也使用laravel包(例如https://github.com/stechstudio/laravel-ssh-tunnel)為您完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM