/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Backup af MySQL via PHP
Fra : Brian Emilius


Dato : 16-05-05 18:30

Hej NG

Hvordan kan jeg lave et dump af en MySQL database med et PHP-script?

Jeg fandt noget som skal køres gennem SSH:
mysqldump --tab=/path/to/some/dir --opt db_name
Men kan det også lade sig gøre i PHP?
Hvis ja: hvordan?

Dumpet jeg gerne vil have, skulle meget gerne ligne det, man får af
phpMyAdmin.

--
Venlig hilsen
Brian Emilius

 
 
Jacob Atzen (16-05-2005)
Kommentar
Fra : Jacob Atzen


Dato : 16-05-05 19:36

On 2005-05-16, Brian Emilius <msn@emilius.dk> wrote:
> Hvordan kan jeg lave et dump af en MySQL database med et PHP-script?
>
> Jeg fandt noget som skal køres gennem SSH:
> mysqldump --tab=/path/to/some/dir --opt db_name
> Men kan det også lade sig gøre i PHP?
> Hvis ja: hvordan?

Du kan bruge system() og venner til at køre kommandoer. Det kræver dog,
at du har rettigheder til det, safemode kan f.eks. være en hindring.

> Dumpet jeg gerne vil have, skulle meget gerne ligne det, man får af
> phpMyAdmin.

Jeg er ikke klar over, hvad pma gør.

--
Med venlig hilsen
- Jacob Atzen

Brian Emilius (16-05-2005)
Kommentar
Fra : Brian Emilius


Dato : 16-05-05 21:31

Jacob Atzen skrev:

>
> Jeg er ikke klar over, hvad pma gør.
>

pma laver et dump med drop tables, create tables og insert into table_name

--
Venlig hilsen
Brian Emilius

Jacob Atzen (17-05-2005)
Kommentar
Fra : Jacob Atzen


Dato : 17-05-05 06:35

On 2005-05-16, Brian Emilius <msn@emilius.dk> wrote:
> pma laver et dump med drop tables, create tables og insert into table_name

Det kan mysqldump godt klare.

--
Med venlig hilsen
- Jacob Atzen

Mikkel Z. Herold (16-05-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 16-05-05 21:21

On 16-05-2005 19:30 Brian Emilius wrote:
> Hvordan kan jeg lave et dump af en MySQL database med et PHP-script?

Jeg bruger http://codewalkers.com/seecode/46.html

Så vidt jeg ved er der visse ting scriptet ikke kan håndtere (hvis man
har specielle datatyper i sin database), men til en database med lidt
tekst og tal fungerer den upåklageligt.

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Brian Emilius (16-05-2005)
Kommentar
Fra : Brian Emilius


Dato : 16-05-05 21:50

Mikkel Z. Herold skrev:
> On 16-05-2005 19:30 Brian Emilius wrote:
>
>> Hvordan kan jeg lave et dump af en MySQL database med et PHP-script?
>
>
> Jeg bruger http://codewalkers.com/seecode/46.html
>
> Så vidt jeg ved er der visse ting scriptet ikke kan håndtere (hvis man
> har specielle datatyper i sin database), men til en database med lidt
> tekst og tal fungerer den upåklageligt.
>
> Mikkel
>

Det ser godt ud, det program... kan du lige give mig en vejledning til
hvordan jeg får det til at sende en fil fx 'backup_timestamp.sql' til
browseren?

--
Venlig hilsen
Brian Emilius

Mikkel Z. Herold (17-05-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 17-05-05 08:26

On 16-05-2005 22:50 Brian Emilius wrote:
> Det ser godt ud, det program... kan du lige give mig en vejledning til
> hvordan jeg får det til at sende en fil fx 'backup_timestamp.sql' til
> browseren?

Det hele står beskrevet i koden. Du skal

1) Kopiere linje 1-207 ind i et nyt dokument, som du kalder "mysqlbackup.h"

2) Lav et php-dokument, f.eks. "mysql_backup.php" og indsæt koden fra
linje 212-215 - husk at ændre parametrene til de rigtige (altså
databasenavn, password osv.). De forskellige parametre er forklaret i
linje 7-13.

3) Hvis du vil have dit dump sendt til browseren, skal du lade den
sidste parameter stå tom (altså
mysqlbackup("localhost","yerdatabase","yerusername","yerpassword","",
true); Ellers skal du angive serverstien hvor du vil have dumpet sendt hen.

Mvh.

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Brian Emilius (17-05-2005)
Kommentar
Fra : Brian Emilius


Dato : 17-05-05 14:30

Mikkel Z. Herold skrev:
> On 16-05-2005 22:50 Brian Emilius wrote:
>
>> Det ser godt ud, det program... kan du lige give mig en vejledning til
>> hvordan jeg får det til at sende en fil fx 'backup_timestamp.sql' til
>> browseren?
>
>
> Det hele står beskrevet i koden. Du skal
>
> 1) Kopiere linje 1-207 ind i et nyt dokument, som du kalder "mysqlbackup.h"
>
> 2) Lav et php-dokument, f.eks. "mysql_backup.php" og indsæt koden fra
> linje 212-215 - husk at ændre parametrene til de rigtige (altså
> databasenavn, password osv.). De forskellige parametre er forklaret i
> linje 7-13.
>
> 3) Hvis du vil have dit dump sendt til browseren, skal du lade den
> sidste parameter stå tom (altså
> mysqlbackup("localhost","yerdatabase","yerusername","yerpassword","",
> true); Ellers skal du angive serverstien hvor du vil have dumpet sendt hen.
>
> Mvh.
>
> Mikkel
>

Hvad hvis jeg vil have det sendt til browseren som en fil, altså hvor
man får mulighed for enten at åbne eller gemme den?

--
Venlig hilsen
Brian Emilius

Mikkel Z. Herold (17-05-2005)
Kommentar
Fra : Mikkel Z. Herold


Dato : 17-05-05 14:52

On 17-05-2005 15:30 Brian Emilius wrote:
> Hvad hvis jeg vil have det sendt til browseren som en fil, altså hvor
> man får mulighed for enten at åbne eller gemme den?

Tja, du kan sikker godt rode lidt med koden og få den til det, men det
nemmeste vil nok være at gemme filen på serveren (dvs. specificere en
serversti i funktions-kaldet), og så bagefter bede browseren om at hente
filen fra serveren.

Det kunne se sådan ud i din "mysql_backup.php":

<?php
include("mysqlbackup.h");
mysqlbackup("localhost","database","username","password","/sti/til/der/hvor/filen/skal/gemmes/sqldata.sql",
true);

readfile("/sti/til/der/hvor/filen/skal/gemmes/sqldata.sql");
?>

Vær opmærksom på, at nogle browsere ikke giver dig en download-mulighed,
hvis filen har filendelsen txt. Derfor har jeg ændret det til sql.

Strengt taget er det heller ingen garanti, for en bruger kan godt have
valgt at sql-filer skal vises direkte i browseren, men det er mindre
sandsynligt end med txt-filer. Hvis du vil være helt sikker på, at
download-muligheden dukker op, skal du til at rode med at sende nogle
specifikke headers til browseren (se næstnederste kommentar på
http://dk2.php.net/readfile).

Mikkel

--
"At first just a rustle of canvas
And the gentlest breath on my face
But a galloping line of white horses
Said that soon we were in for a race"
Sting - The Wild Wild Sea

http://www.mzh.dk

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste