[英]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.