Hoşgeldin Misafir

Shell Üzerinden PHPMyAdmin Sql Dump

codbaba

14 Şub 2025
16 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Shell ile sunucuya sızıp ROOT olamadığınız durumlarda hayat kurtaran bir çözüm.
İlgili kodu .php formatı ile Sunucuya yükleyip çalıştırınız.
SQL Yedekledikten sonra indir butonu gözükecektir.

PHP:
<?php
$host = 'localhost'; // Veritabanı sunucusu (genelde localhost )
$user = 'user'; // Veritabanı kullanıcı adı
$pass = 'pw'; // Veritabanı şifre
$db = 'db'; // Veritabanı adı

// Bağlantı oluştur
$mysqli = new mysqli($host, $user, $pass, $db);

// Bağlantı hatasını kontrol et
if ($mysqli->connect_error) {
    die("Bağlantı hatası: " . $mysqli->connect_error);
}

// Veritabanı tablolarını al
$tables = array();
$result = $mysqli->query("SHOW TABLES");
while ($row = $result->fetch_row()) {
    $tables[] = $row[0];
}

// SQL dosyası oluştur
$sqlFile = 'backup_' . date('Y-m-d_H-i-s') . '.sql';
$handle = fopen($sqlFile, 'w');

// Tabloları döngüye al ve SQL sorgusu oluştur
foreach ($tables as $table) {
    $result = $mysqli->query("SELECT * FROM $table");
    $numColumns = $result->field_count;

    // Tablo yapısını ve verilerini dosyaya yaz
    fwrite($handle, "DROP TABLE IF EXISTS $table;\n");
    $createTable = $mysqli->query("SHOW CREATE TABLE $table")->fetch_assoc();
    fwrite($handle, $createTable["Create Table"] . ";\n");

    while ($row = $result->fetch_row()) {
        $sql = "INSERT INTO $table VALUES (";
        for ($i = 0; $i < $numColumns; $i++) {
            $sql .= "'" . $mysqli->real_escape_string($row[$i]) . "'";
            $sql .= ($i < ($numColumns - 1)) ? ',' : '';
        }
        $sql .= ");\n";
        fwrite($handle, $sql);
    }
    fwrite($handle, "\n");
}

// Dosyayı kapat
fclose($handle);

// Veritabanı bağlantısını kapat
$mysqli->close();

// İndirme bağlantısını göster
echo "TURKHACKS: SQL yedeği başarıyla oluşturuldu. <a href='$sqlFile' download>İndir</a>";
?>