Merhaba, veritabanı geri getirme yada import işlemleri bildiğiniz üzere genellikle, phpMyAdmin’in içe aktarma bölümünden, yada veritabanı işlem programlarının restore bölümlerinden yapılır. MySQL veritabanlarının tablolarını ve datalarını geri yüklemek için çeşitli seçenekler mevcuttur. SQL dosyasını veritabanına aktarmak için barındırma sunucunuza, arayüz araçlarına yada phpMyAdmin’e giriş yapmanız gerekir. Ancak, bu işlem PHP kod betikleri ile de yapılabilir. Bu makalede PHP betikleri yardımıyla DB restore işlemini öğrenmiş olacaksınız.
PHP dosyasından veritabanını geri yüklemek, kullanıcının web uygulamasından veritabanını geri yüklemesine izin vermek istediğinizde çok işinize yarayacak bir işlemdir. Tabi bir o kadar da tehlikeli bir işlemdir. MySQL veritabanı tablolarını içe aktarmak için önce veritabanının yedeğinin alınması gerekir. Bu makalede, PHP’yi kullanarak SQL dosyasından veritabanını nasıl geri yükleyeceğimizi göstereceğim. Basit PHP betiğimiz, MySQL veritabanını SQL dosyasından geri yüklemeye yardımcı olacak.
PHP kullanarak MySQL Veritabanı Geri Yükleme
Daha işlevsel kullanılabilirlik için tüm PHP kodlarını restoreDatabaseTables() fonksiyonunda topladım. PHP aracılığıyla restoreDatabaseTables() fonksiyonunu kullanarak, veritabanındaki tabloları .sql dosyasından geri yükleyebilirsiniz. MySQL veritabanını geri yüklemek için aşağıdaki parametreler gereklidir.
- $dbHost – Zorunlu. Veritabanının ana sunucusunu belirtir.
- $dbUsername – Zorunlu. Veritabanı kullanıcı adını belirtir.
- $dbPassword – Zorunlu. Veritabanı şifresini belirtir.
- $dbName – Zorunlu. Yedeklemek istediğiniz veritabanı adını belirtir.
- $filePath– Zorunlu. SQL dosyasının, tabloların geri yükleneceği yolu belirtir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /** * @function restoreDatabaseTables * @author Fatih Soysal * @link http://www.fatihsoysal.com * @usage MySQL Veritabanını PHP Kullanarak SQL Dosyasından Geri Yükleme */ function restoreDatabaseTables($dbHost, $dbUsername, $dbPassword, $dbName, $filePath){ // Veritabanı bağlantısı $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); // Geçici değişken, geçerli sorguyu depolamak için kullanılır $templine = ''; // Tüm dosyayı oku $lines = file($filePath); $error = ''; // Her satır için dönelim foreach ($lines as $line){ // Skip it if it's a comment if(substr($line, 0, 2) == '--' || $line == ''){ continue; } // Bu satırı geçerli segmente ekle $templine .= $line; if (substr(trim($line), -1, 1) == ';'){ // Perform the query if(!$db->query($templine)){ $error .= 'Error performing query "<b>' . $templine . '</b>": ' . $db->error . '<br /><br />'; } // Geçici değişkeni sıfırlayalım $templine = ''; } } return !empty($error)?$error:true; } |
Kullanımı:
SQL dosyasından MySQL veritabanını geri yüklemek için yukarıda yazmış olduğumuz restoreDatabaseTables() fonksiyonunu kullanmamız yeterli.
1 2 3 4 5 6 7 | $dbHost = 'localhost'; $dbUsername = 'root'; $dbPassword = 'ABC132'; $dbName = 'DB_TEST'; $filePath = 'YEDEK/15.02.18.sql'; restoreDatabaseTables($dbHost, $dbUsername, $dbPassword, $dbName, $filePath); |
Makalemi okuduğunuz için teşekkür ederim. Bir sonraki makalede görüşmek üzere. Soru, görüş ve önerileriniz için alt taraftan yorum bölümünü kullanabilirsiniz. Sağlıkla, huzurla kalın.
Merhaba Fatih üstadım,
Ms SQL Serverdeki bir tabonun iki ayrı sütünunda bulunan bilgileri FreeBSD için MySql database ye aktamak hakkında beni yönlendirebilirmisin veya bildiğiniz bir döküman varmıdır.
Teşekkür eder, iyi çalışmalar dilerim.