13. februar 2007 - 18:19Der er
16 kommentarer og 1 løsning
Backup af bestemte MYSQL tabeller
Hej derude... har kigget eksperten igennem men kan ikke finde nogle hvor man kan tage backup af bestemte tabeller. Jeg har 4 tabeller blandet sammen med en masse andre, og det er kun disse jeg vil havde backup af... hvordan gør jeg dette? (del af et større system så PHPMyAdmin osv er udelukket)
Som jeg sagde tidligere jeg for ikke så meget ud af det der er blevet sagt :) Jeg skal bruge noget mere kode for at forstå det... $mysqldump er ikke en php string (som jeg troede et kort øjeblik) ...
Nej, mysqldump er et program du kan bruge til at tage backup af databaser og tabeller. Mit eksempel viste brugen i Linux, derfor den '$'. Findes nok også til Windows. Kan hentes på mysql.com
Det kræver så at du har adgang til mysql-serveren, men nu siger du at det er for stort til phpmyadmin, så det har du jo nok.
Helt generelt, uden at kende til dit konkrete problem, eller det du prøver her, så er der kun to måder man kan håndtere store datamængder i en mysql-database
1) Direkte adgang til serveren, fx ssh på unix/linux, eller fjernskrivebord på Windows, og så kører man mysqldump eller lignende direkte på serveren 2) Evt. kan man nøjes med adgang til mysql-serveren udefra (åbnet for port 3306) - det vil være langsommere, men muligt.
Efter min mening er der ikke andre måder. Men jeg ved ikke hvad du har af webhosting eller lignende.
Hm... jeg tænker bare på for eksempel PHPMyAdmin har en backup funktion... jeg vil bare gerne havde det samme men hvor man bare trykker på "klik her" og så for man 4 bestemte tabeller (med data) i en *.sql fil som man kan downloade... (safe as til sin com)
Det er et system hvor brugeren bare skal kunne klikke på et link der hedder "backup" og så tar den backup af systemets tabeller som er ca. 4 (med data) ... den skal ignorere alle andre tabeller som brugeren måtte havde i sin mysql... og navnene på de 4 tabeller er faste så de ændres ikke...
Så er der jo gode ting at hente i linket som mcgoat gav. Men vær alligevel opmærksom på, at når det skal afvikles i PHP på serveren, så er der altid en timeout, og dermed en øvre grænse for hvor store ting du kan lave backup på.
Okay jeg er kommet frem til noget... nedstående kode henter data'en fra de tabeller jeg ønsker... men jeg vil gerne lave et dump af tabellens opbygning... altså en CREATE table med felterne og det hele... Tror i at i kan hjælpe med det? Ligsom det her:
DROP TABLE IF EXISTS `kalender`; CREATE TABLE `kalender` ( `id` int(11) NOT NULL auto_increment, `month` varchar(250) default NULL, `year` int(11) default NULL, `date` varchar(250) default NULL, `tilk` varchar(255) NOT NULL default '', `aftale_id` varchar(255) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=105 ;
Koden jeg har på nuværende tidspunk:
<?php require 'mysql.php'; set_time_limit(300);
function datadump ($table) {
$result .= "# Dump af $table \n"; $result .= "# Dump DATO : " . date("d-M-Y H:i:s") ."\n\n";
Har slev fået alt på plads nu... det virker fint... fik desværre ikke så meget ud af det i skrev, men i skal havde tak alligevel :) Smid et svar - tak.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.