Pagina 1 van 2

Backup maken via phpmyadmin

Geplaatst: 22 jul 2005, 09:13
door MacMarco
Ik wil graag leren hoe ik een backup kan maken via phpmyadmin, zodat ik ook de entries van het gastenboek (niet-phpbb) etcetera kan backuppen.

Ik heb de zoekfunctie gebruikt, maar ik kom er niet helemaal uit. Ik lees dat jullie adviseren om phpmyadmin te gebruiken in plaats van de backupfunctie in het adminpaneel van phpbb. Maar nou is mijn vraag:

:?: Hoe doe ik dat dan precies, een backup maken via phpmyadmin?

Dit is wat ik inmiddels weet:
Ik zit in phpmyadmin, selecteer vervolgens op mijn database, klik op het tabblad Exporteer. Ik klik vervolgens op "Selecteer alles", de radiobutton daaronder staat op SQL, da's goed volgens mij.

Ik heb gelezen dat "Verzenden" aangevinkt moet worden. Ik neem aan dat dat is om de backup te kunnen downloaden in plaats van lokaal opslaan?
En hoe zit het met de andere opties aan de rechterzijde? Ik snap dat ik "Structuur" (tabellen?) en "Data" (inhoud van de tabellen?) beide moet aanvinken, maar ik weet niet wat de andere opties daaronder betekenen en of ik ze moet aanvinken of niet. Kan iemand me dat uitleggen, want met de php-documentatie kom ik er niet uit.

Ik ben ook benieuwd of ik de naam van de template moet aanpassen. Is __DB__ een prefix of is het gebruikelijk om de template zo te noemen?
Het laatste blok, Compressie, is me duidelijk. Ik kan daar alleen geen gebruik van maken omdat ik geen gzip kan gebruiken bij mijn hostingprovider.

Voor de meelezers heb ik hieronder even een screenshotje van het Exporteer-scherm van phpmyadmin geplakt:

Afbeelding

Alvast bedankt voor jullie hulp.

Geplaatst: 22 jul 2005, 09:43
door Paul
Alles zoals daar op je screen staat is goed, alleen raad ik persoonlijk aan om voeg auto_increment waarde, uit te zetten, omdat dit problemen kan geven met andere mysql versies.

Geplaatst: 22 jul 2005, 09:57
door MacMarco
Oké, dat heb ik gedaan en vervolgens op "Start" geklikt om een backup te maken en dat werkt inderdaad. Ik heb het .sql bestand in een teksteditor bekeken en het ziet er inderdaad goed uit.

Wat ik niet helemaal begrijp is dat de backup die ik nu via phpmyadmin maak zo'n 40% kleiner is dan de backup die ik via het ACP maak. De backup via het ACP van gisteren is 2,2 Mb terwijl de backup die ik net met phpmyadmin heb gemaakt slechts 1,4 Mb is. Hoe kan dat?

Hoewel ik Paulus dankbaar ben voor z'n snelle reactie, waardoor het nu in ieder geval werkt, zou ik het fijn vinden als iemand misschien de verschillende opties zou willen toelichten, zodat ik ook weet wat ik nu precies gedaan heb. Daar leer ik meer van dan "zo moet je het doen want dan werkt 't " ;-)

Is het ook mogelijk om zo'n backup te automatiseren, wanneer je geen shell-access hebt tot het systeem? Kan je zoiets client-side voor elkaar krijgen?

Geplaatst: 22 jul 2005, 10:09
door Paul
Ik zal proberen de opties uit te leggen, maar ik weet ze ook niet allemaal :P
Afbeelding
  1. De tabbellen die je wilt exporteren, met shift en cntrl kan je er meerdere kiezen.
  2. de manier van exporten, op welke manier je het wilt te zien krijgen.
  3. Of je de structuur wilt exporteren
  4. OF je drop table, zodat als een tabel bestaat, hij wordt verwijderd wilt toevoegen.
  5. AUTO_INCREMENT waarde, voor het primery key veld, die automatische word verhoogt
  6. OF je veldnamen in quotes (`) wilt
  7. COmmentaar van die tabel
  8. Of je de data wilt exporteren
  9. Weet ik niet :(
  10. Weet ik niet :(
  11. Weet ik niet :(
  12. Het type invoegen, dit is meestal goed.
  13. of je wilt versturen.
  14. hoe het bestand heet
  15. compressie.
Met onderstaand script, kan je alle databases update, je moet wel even een map genaamd backup maken, en jouw gegevens aanpassen.

Code: Selecteer alles

<?php
$command = " /usr/local/bin/mysqldump --user=JOUW_GEBRUIKERSNAAM --password=JOUW_WACHTWOORD --all-databases > backup".date("d-M-Y").".sql";
echo $command; 
$result = passthru($command);
print "\n";
print $result;
print "\n";
$dbsize = filesize("backup".date("d-M-Y").".sql");
if( $dbsize >= 1048576 ){
	$dbsize = sprintf("%.2f MB", ( $dbsize / 1048576 ));
}else if( $dbsize >= 1024 ){
	$dbsize = sprintf("%.2f KB", ( $dbsize / 1024 ));
}else{
	$dbsize = sprintf("%.2f Bytes", $dbsize);
} 
print "Filesize:".$dbsize;
copy("backup".date("d-M-Y").".sql","backup/backup".date("d-M-Y").".sql");
unlink("backup".date("d-M-Y").".sql");
die;
?>

Geplaatst: 22 jul 2005, 10:19
door MacMarco
paulus schreef: Met onderstaand script, kan je alle databases update, je moet wel even een map genaamd backup maken, en jouw gegevens aanpassen.
Bedankt voor je uitvoerige uitleg!

Wat betreft het bovenstaande script, je zegt "kan je alle databases update" maar ik neem aan alle databases backuppen?

Als ik het goed begrijp dan maakt het script op de server, in de map backup, een backup van alle databases? Dat script zou ik dan dus op afstand kunnen aanroepen, z'n werk laten doen, en vervolgens het resultaat door een ander scriptje laten downloaden van mijn ftpserver? Begrijp ik dat goed?

Bedankt voor je geduld en je behulpzaamheid :thumb:

Geplaatst: 22 jul 2005, 10:21
door Paul
Niet helemaal, hij maakt van alle database, waar die user toegang heeft een backup.

Je moet het bestand in de root zetten, en de map config daar maken, daar komen dan de backups in te staan. Dit bestand kan je dan gewoon aanroepen(of dmv cronjob laten draaien), en dan zelf van je ftp afhalen. Hij slaat hem op met de datum in de naam van het bestand.

Geplaatst: 22 jul 2005, 10:23
door MacMarco
Moet ik dan een map "backup" en een map "config" maken? Want je hebt 't nu over twee verschillende mappen... :D

Geplaatst: 22 jul 2005, 10:25
door Paul
Neej, zo:
backup.php (die file die ik denet gaf.)
config.php (de file van phpbb)
backup (de map waar de bestanden inkomen)

Geplaatst: 22 jul 2005, 10:28
door MacMarco
Dus, ff voor de zekerheid:

Ik moet het scriptje backup.php in de root van mijn ftp-server zetten? of in de map phpbb?

En moet ik de map backup in de root van mijn ftp-server maken? of in de map phpbb?

Geplaatst: 22 jul 2005, 10:30
door Paul
mag je zelf weten, maakt niet uit. (als je beide maar in of de root van server, of root van phpbb zet, niet in verschillende)

Geplaatst: 22 jul 2005, 10:34
door MacMarco
Ok, da's duidelijk. Denk ik :)

Als ik dus in de root een map backup maak, en het script backup.php in de root zelf zet dan is het dus goed? Moet ik dan ook config.php naar de root kopiëren?

Waarom moet config.php er eigenlijk bij? Daar doet 't script toch verder niks mee?

Dit begint trouwens verrekt veel op slowchatten te lijken ;-)

Maar ja, alles voor 't nageslacht :-)

Geplaatst: 22 jul 2005, 10:39
door MacMarco
Het script geeft een foutmelding:

Code: Selecteer alles

/usr/local/bin/mysqldump --user=***** --password=***** --all-databases > backup22-Jul-2005.sql
Warning: passthru() has been disabled for security reasons in /www/htdocs/*****/backup.php on line 4

Warning: filesize(): Stat failed for backup22-Jul-2005.sql (errno=2 - No such file or directory) in /www/htdocs/*****/backup.php on line 8
Filesize:0.00 Bytes
Warning: copy(backup22-Jul-2005.sql): failed to open stream: No such file or directory in /www/htdocs/*****/backup.php on line 17

Warning: unlink(backup22-Jul-2005.sql): No such file or directory in /www/htdocs/*****/backup.php on line 18
Als ik het goed begrijp dan is de functie passthru() niet te gebruiken? Hoe kan ik dat oplossen?

Geplaatst: 22 jul 2005, 10:42
door Paul
hmm, wat is je host? Lycos toevallig? :D

(En config.php gebruikte ik alleen, om aan te geven hoe het moest komen te staan :D)

Geplaatst: 22 jul 2005, 10:47
door MacMarco
paulus schreef:hmm, wat is je host? Lycos toevallig? :D
Nee, geen Lycos, Neerlands beste hostingprovider, deHeeg Internet Solutions.
paulus schreef:(En config.php gebruikte ik alleen, om aan te geven hoe het moest komen te staan :D)
Oké, dan weet ik in ieder geval dat ik config.php niet nodig heb.

Nog iets anders: 't valt me op dat php in z'n output vrolijk mijn gebruikersnaam en wachtwoord de wijde wereld ingooit... is dat te voorkomen? Als het script om wat voor reden dan ook een foutmelding geeft ligt m'n gebruikersnaam en wachtwoord op straat... dat vind ik niet echt een prettig idee.

Geplaatst: 22 jul 2005, 10:58
door Paul
Ja, de echo met die regel, even verwijderen. Ikzelf gebruik dit script alleen voor een cronjob, waar dat wordt meegstuurd, vandaar dat ik dat laat echoen

Geplaatst: 22 jul 2005, 11:12
door MacMarco
Oké, die is eruit. Dat geeft een veilig gevoel :-)

Als ik het goed begrijp wordt passthru() gebruikt om programma's op de server aan te roepen? En als mijn hostingprovider dat om veiligheidsredenen heeft afgeschermd, dan is daar weinig aan te doen neem ik aan?

Zijn er nog alternatieven, waarmee ik een backup zou kunnen maken?

Geplaatst: 22 jul 2005, 11:18
door Paul
kan je een bestand aanmaken, met als naam info.php en als inhoud

Code: Selecteer alles

<?php phpinfo(); ?>
En hier de link geven?

Geplaatst: 22 jul 2005, 11:25
door MacMarco
Ehm.. dat had ik zojuist gedaan, maar ik heb 'm weer verwijderd. Tot mijn grote schrik zie ik dat daar óók mijn gebruikersnaam en wachtwoord in staan :-(

Ik snap dat niet, ik vind dat knap onveilig...

Als je 'm wilt hebben dan wil ik 'm jou, Paulus, best geven, maar dan niet in het forum. Ik hoop dat je daar begrip voor hebt.

Als je dat liever niet doet, ook prima, zeg me dan welke info je nodig hebt dan kopieer ik dat in dit topic.

Geplaatst: 22 jul 2005, 11:49
door Paul
Vreemd, horen daar niet. Stuur de link maar even via PM. Dan kan ik het zelf bekijken.

Geplaatst: 22 jul 2005, 12:12
door MacMarco
Ik heb je een pb-tje gestuurd met de gevraagde info.