Hallo,

Ik heb een script gemaakt waarmee ik een backup kan maken van een MySql dqtabase die staat op mijn lokale pc
Het script staat in de www map ( ik gebruik WAMP ). Werkt prima.

Maar als ik vervolgens het script plaats bij mijn hoster ( one.com ) dan werkt het niet. Natuurlijk doe ik iets fout maar ik weet niet wat

De inloggegevens ( host, user en DbName ) zijn identiek.

ik krijg deze melding op mijn domein : Deze pagina werkt niet

Wat doe ik fout ?
Waar komt die foutmelding vandaan?
Ik ben een stapje verder, dit is het script :

<?php
ob_start();
$username = "XXXXXX";

$password = "XXXXXXX";

$hostname = "localhost";

$dbname = "XXXXXXXX";
// if mysqldump is on the system path you do not need to specify the full path

// simply use "mysqldump --add-drop-table ..." in this case


$command = "C:\wamp64\bin\mysql\mysql5.7.31\bin\mysqldump --add-drop-table --host=$hostname --user=$username ";


if ($password)

$command.= "--password=". $password ." ";

$command.= $dbname;

system($command);
$dump = ob_get_contents();

ob_end_clean();
// send dump file to the output

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename='.basename($dbname . "_" . date("Y-m-d_H-i-s").".sql"));

flush();

echo $dump;

exit();
?>


De fout is deze :
$command = "C:\wamp64\bin\mysql\mysql5.7.31\bin\mysqldump --add-drop-table --host=$hostname --user=$username ";

dit pad staat niet bij de hoster, dus heb ik een ander script nodig ...
Je hosting zal ook geen Windows draaien. ;-)

Haal dat pad voor mysqldump eens weg, en probeer opnieuw.
Pad is weggehaald maar er gebeurt niets. De hoster gebruikt inderdaad geen Windows.

ik heb gewoonweg een werkend script nodig.
Wat heb je nu dan?

Probeer dit eens?

system($command,$output);
echo "Uitvoer: ".$output;

Wat is de uitvoer?
Deze pagina werkt niet verschijnt er dan : kan pagina niet laden

als ik eruit haal door dit te doen : //system($command);

dan slaat hij het bestand op, maar uiteraard zonder data in het bestand

[size=xsmall]Toevoeging op 29/11/2022 18:52:21:[/size]

dus mysqldump werkt niet
Wat is de uitvoer dan van mysqldump in je script met $output?

Je moet hem ook NIET commentariseren met // ervoor, he ;-)

Laat je relevante code eens zien? Ik denk dat die ergens een syntax-fout heeft, afgaande op die error.
dit is de huidige code=

<?php
ob_start();
$username = "xXXXXXXXXXXXXXXXX";
$password="XXXXXXXXXXXXXXXXX";
$dbname="XXXXXXXXXXXXXXXXXXXX";
$hostname = "localhost";
// if mysqldump is on the system path you do not need to specify the full path

// simply use "--mysqldump --add-drop-table ..." in this case

$command = "--mysqldump --add-drop-table --host=$hostname --user=$username ";

if ($password)

$command.= "--password=". $password ." ";

$command.= $dbname;

//system($command);
system($command,$output);
echo "Uitvoer: ".$output;
$dump = ob_get_contents();

ob_end_clean();
// send dump file to the output

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename='.basename($dbname . "_" . date("Y-m-d_H-i-s").".sql"));

flush();
echo $dump;
exit();
?>
Wat is nu de precieze melding die je krijgt?
Eerst zeg je "Deze pagina werkt niet", en later is het opeens: "kan pagina niet laden".
Wees graag even specifiek met wat je ziet. Deel graag de juiste foutmelding.

Verder is er met dit script van jou niks mis, maar enkel met het commando. Ik vrees eigenlijk dat je tegen een time-out aanloopt, maar dat is tot nu toe gissen en gokken. Hoe groot is je database eigenlijk?

Misschien staat mysqldump op een andere plek, of is die enkel via een pad bereikbaar.
Bij mij is het dit pad: /usr/bin/mysqldump. Probeer dit eens?

En anders valt dit eens te proberen in een los script met bijv. de naam: mysqldump_pad.php:
<?php
system("whereis mysqldump",$output);
echo "Pad: ".$output;
?>

Zelf voer ik mysqldump als tijd uit in de commandline via SSH. Als je dat niet hebt kan je dit ook proberen via een cronjob-taak op een tijdstip van over een paar minuten later. Voor grote databases wil je dit niet via de browser doen, waar PHP limieten kent.
(Die zijn te omzeilen, maar dat wil je liever niet, tenzij je weet hoe je een proces kan killen).
Met het script dat je in de vorige post zag kreeg ik deze melding:

"Deze pagina werkt niet"

De database is super klein, enkele kb's groot

[size=xsmall]Toevoeging op 29/11/2022 22:06:00:[/size]

Het script dat je in de vorige post schreef werkt lokaal prima, maar niet op mijn domein, ik concludeer dat ik een verkeerde url gebruik ?

ik gebruik : mijndomein.com/scriptnaam/php

[size=xsmall]Toevoeging op 29/11/2022 22:07:31:[/size]

mijndomein.com/scriptnaam.php (fout in de vorige post )

Reageren