Gio123 Δημοσ. 29 Μαρτίου 2015 Δημοσ. 29 Μαρτίου 2015 Kαλησπέρα, Θα ήθελα με κάποιο τρόπο να κάνω export την βάση μου αλλά όχι μέσω του phpmyadmin, αλλά π.χ κάτι σαν το Mysqldump που βρήκα αλλά δεν κατάφερα κάτι και να το αποθηκεύω σε ένα αρχείο. Καμία ιδέα για το πως γίνεται; Ευχαριστώ
Noobie Δημοσ. 29 Μαρτίου 2015 Δημοσ. 29 Μαρτίου 2015 Ορίστε ένα απλό παράδειγμα για το mysqldump: mysqldump -u OnomaXristi -pKwdikos OnomaBasis > OnomaArxeiou.sql Αντικατέστησε αυτά που είναι σε bold, επίσης μην αφήσεις κενό ανάμεσα στο -p και τον Kwdikos, σκόπιμα είναι κολλητά.
Gio123 Δημοσ. 29 Μαρτίου 2015 Μέλος Δημοσ. 29 Μαρτίου 2015 Φίλε θέλω να το κάνω κάπως έτσι. Δηλαδή, να έχω κάτι τέτοιο <a href="exort.php" > Export</a> και όταν πατάω πάνω σε αυτό να κατεβάζω το αρχείο.
geomagas Δημοσ. 29 Μαρτίου 2015 Δημοσ. 29 Μαρτίου 2015 Γιατί δεν βάζεις την εντολή σου (mysqldump etc) μέσα σε μία exec() ή passthru();
geomagas Δημοσ. 31 Μαρτίου 2015 Δημοσ. 31 Μαρτίου 2015 Το "αλλά τίποτα" δεν μου λέει... τίποτα! Αν θέλεις να επεκταθείς λίγο, το συζητάμε.
Gio123 Δημοσ. 31 Μαρτίου 2015 Μέλος Δημοσ. 31 Μαρτίου 2015 Το "αλλά τίποτα" δεν μου λέει... τίποτα! Αν θέλεις να επεκταθείς λίγο, το συζητάμε. Βρήκα αυτό τον κώδικα.. $result = 0; $command = "mysqldump -u $username -p$password $dbname > dump.sql"; exec($command,$output=array(),$result); if($result) echo "this has worked.\n"; το έτρεξα μου λέει ότι δουλεύει αλλά το θέμα είναι ότι δεν βρίσκω το αρχείο. Επίσης τρέχω την άσκηση μου σε έναν απομακρυσμένο server και όχι πάνω στον υπολογιστή μου. Αν θα ήθελα να κάνω το αρχείο download στον υπολογιστή κάθε φορά πως θα γινόταν;
geomagas Δημοσ. 31 Μαρτίου 2015 Δημοσ. 31 Μαρτίου 2015 Βρήκα αυτό τον κώδικα.. $result = 0; $command = "mysqldump -u $username -p$password $dbname > dump.sql"; exec($command,$output=array(),$result); if($result) echo "this has worked.\n"; το έτρεξα μου λέει ότι δουλεύει αλλά το θέμα είναι ότι δεν βρίσκω το αρχείο. Για να είσαι πιο σίγουρος, βάλε absolute path αντί σκέτο dump.sql Επίσης τρέχω την άσκηση μου σε έναν απομακρυσμένο server και όχι πάνω στον υπολογιστή μου. Αν θα ήθελα να κάνω το αρχείο download στον υπολογιστή κάθε φορά πως θα γινόταν; Αν θέλεις να κρατήσεις το dump στον server αλλά και να το κατεβάσεις, φρόντισε το absolute path που σου είπα να είναι published (πχ μέσα στο public_html σου ή όπως αλλιώς λέγεται στον server σου). Μετά, απλά γράψε στον browser http://example.com/path/to/dump.sql Αν τώρα σε ενδιαφέρει μόνο το download (on the fly) άλλαξε το script σου ώστε να κάνει output κατευθείαν στον browser. Κάτι σαν: $command = "mysqldump -u $username -p$password $dbname"; passthru($command); exit;
Gio123 Δημοσ. 31 Μαρτίου 2015 Μέλος Δημοσ. 31 Μαρτίου 2015 Θέλω μόνο να το κατεβάσω και όχι να το κρατάω στον server. Δοκιμάσα έτσι όπως μου είπες αλλά δεν είδα κανένα file. Επίσης δοκίμασε και έτσι: $command = "mysqldump -u $username -p$pass $dbname > dump.sql"; passthru($command); Δεν ξέρω τι γίνεται... Το μόνο που κάνει είναι να τυπώνει αυτά Server version 10.0.17-MariaDB-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
geomagas Δημοσ. 31 Μαρτίου 2015 Δημοσ. 31 Μαρτίου 2015 - man mysqldump - Δεν χρειάζεσαι ανακατεύθυνση - Αν θέλεις να μη στα τυπώνει στο παράθυρο του browser, βάλε τους κατάλληλους Content-* headers.
Gio123 Δημοσ. 31 Μαρτίου 2015 Μέλος Δημοσ. 31 Μαρτίου 2015 Έκανα κάτι τέτοιο $dumpfname = $dbname . "_" . date("Y-m-d_H-i-s").".sql"; $command = "mysqldump -u $username"; if ($pass) $command.= "--password=". $pass ." "; $command.= $dbname; $command.= " > " . $dumpfname; system($command); // zip the dump file $zipfname = $dbname . "_" . date("Y-m-d_H-i-s").".zip"; $zip = new ZipArchive(); if($zip->open($zipfname,ZIPARCHIVE::CREATE)) { $zip->addFile($dumpfname,$dumpfname); $zip->close(); } // read zip file and send it to standard output if (file_exists($zipfname)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($zipfname)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' .filesize($zipfname)); readfile($zipfname); exit; } αλλά δεν δουλεύει και είναι η πρώτη φορά που κάνω κάτι τέτοιο και δεν μπορώ να καταλάβω που είναι το λάθος ή ότι άλλο χρείαζεται. Δεν ξέρω αν έχεις να προτείνεις κάτι.
mad-proffessor Δημοσ. 31 Μαρτίου 2015 Δημοσ. 31 Μαρτίου 2015 $zipfname = $dbname . "_" . date("Y-m-d_H-i-s").".zip"; Εδω πρέπει να βάλεις absolute path πιθανως δεν ξέρει που είναι το αρχείο, ίσως και στο dumpfname
Gio123 Δημοσ. 31 Μαρτίου 2015 Μέλος Δημοσ. 31 Μαρτίου 2015 Εγώ αυτό που θέλω είναι να δημιουργήσω το αρχείο και να το κάνω download γιατί να δώσω το path, ούτε έχω δημιουργήσει το αρχείο.
mad-proffessor Δημοσ. 31 Μαρτίου 2015 Δημοσ. 31 Μαρτίου 2015 Τι περιμένεις να σου απάντήσω ούτε log files output δίνεις ούτε στο κώδικα βλέπω πουθενα να χειρίζεσαι eroors/exceptions. Αυτο που μου φάνηκε πιο λογικό σου απάντησα οτι η php δε καταλαβαίνει που είναι το αρχείο που δημιουργηθήκε κ αν έχει δημιουργηθει κιόλας όπως σωστα είπες $zip->addFile($dumpfname,$dumpfname); Εδω π.χ πως θα βρει το αρχείο;
Gio123 Δημοσ. 31 Μαρτίου 2015 Μέλος Δημοσ. 31 Μαρτίου 2015 Φίλε, πρώτα φορά ασχολούμαι με αρχεία - php και προσπαθω να καταλάβω τι παίζει...και με το Mysqldump...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα