Een backup maken van een database bij een hoster

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ronny Vangaster

Ronny Vangaster

29/11/2022 13:46:52
Quote Anchor link
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 ?
 
PHP hulp

PHP hulp

03/02/2023 13:58:48
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 14:05:11
Quote Anchor link
Waar komt die foutmelding vandaan?
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 14:09:42
Quote Anchor link
Ik ben een stapje verder, dit is het script :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?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 ...
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 14:11:09
Quote Anchor link
Je hosting zal ook geen Windows draaien. ;-)

Haal dat pad voor mysqldump eens weg, en probeer opnieuw.
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 17:13:14
Quote Anchor link
Pad is weggehaald maar er gebeurt niets. De hoster gebruikt inderdaad geen Windows.

ik heb gewoonweg een werkend script nodig.
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 17:19:56
Quote Anchor link
Wat heb je nu dan?

Probeer dit eens?

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

Wat is de uitvoer?
Gewijzigd op 29/11/2022 17:21:53 door - Ariën -
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 18:48:53
Quote Anchor link
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

Toevoeging op 29/11/2022 18:52:21:

dus mysqldump werkt niet
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 18:59:25
Quote Anchor link
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.
Gewijzigd op 29/11/2022 19:01:21 door - Ariën -
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 19:33:25
Quote Anchor link
dit is de huidige code=

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?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();
?>
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 21:33:47
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?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).
Gewijzigd op 29/11/2022 21:40:52 door - Ariën -
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 21:53:01
Quote Anchor link
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

Toevoeging op 29/11/2022 22:06:00:

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

Toevoeging op 29/11/2022 22:07:31:

mijndomein.com/scriptnaam.php (fout in de vorige post )
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 22:10:17
Quote Anchor link
Je moet gewoon goed bewust zijn wat je documentroot is. Vaak is dit /www, /htdocs, /public_html of /http_docs. Daarin staan al je bestanden die je zichtbaar op internet wilt hebben.
En dan kan je via www.jouwdomeinhier.nl/jouwbestand.php je PHP-script uitvoeren.

Probeer het eerst eens met een simpel index.html-bestand met een simpele tekst. Als je die keurig ziet verschijnen, dan weet je dat je goed zit.

Als dat goed werkt ben ik benieuwd wat de uitvoer is van je 'whereis mysqldump' script.
Gewijzigd op 29/11/2022 22:11:45 door - Ariën -
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 22:14:39
Quote Anchor link
als ik index.php ( waar ook het backup-script staat ) laad, dan zie ik gewoon de website

Toevoeging op 29/11/2022 22:24:34:

het script staat in de www-map zoals ook index/php
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 22:26:19
Quote Anchor link
Dan zal er met het uploaden en de locatie niks mis zijn.

Maar waar komt de foutmelding "Deze pagina werkt niet" vandaan?
Staat dit in een error-bestand vermeld ofzo? Ik kan me niet indenken dat een webhosting zo'n wazige foutmelding zou tonen.

Heb je mijn kleine script al geprobeerd? Ik ben benieuwd waar mysqldump precies staat.
Werkt die wel? Hier wel in ieder geval.
Gewijzigd op 29/11/2022 22:28:10 door - Ariën -
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 22:31:23
Quote Anchor link
het script werkt alleen op localhost op mijn laptop, maar niet bij de hosting

ik krijg deze melding : Deze pagina werkt niet
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 22:34:39
Quote Anchor link
Waar komt die melding dan vandaan? Zoek dat eens uit?
Dit lijkt me geen melding van je webhosting. Als een hosting met zulke errors strooit, dan was ik allang vertrokken. Liever een blanko scherm, of een foutmelding als ik dat expliciet wil.

Misschien dat .htaccess een hint geeft?

Ik krijg het vermoeden dat ze system() blokkeren. Maar die error blijft gewoon 'lomp'.
Kan je hier wat opmaken over disabled functions?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
phpinfo();
?>
Gewijzigd op 29/11/2022 22:37:19 door - Ariën -
 
Ronny Vangaster

Ronny Vangaster

29/11/2022 22:37:30
Quote Anchor link
ik kijk het morgenvroeg verder na. Erg bedankt dat je me wilde helpen, ik houd je verder op de hoogte ...Dank
 
- Ariën  -
Beheerder

- Ariën -

29/11/2022 22:41:58
Quote Anchor link
Top! Ben benieuwd!
 
Jan R

Jan R

01/12/2022 07:20:08
Quote Anchor link
Om een log te hebben bij one.com kreeg ik van de support volgend antwoord
plaats volgende regels als top in je php script

ini_set ('track_errors', 1);
ini_set ('log_errors', 1);
ini_set ('error_log', '/customers/0/0/0/domain/httpd.private/logs/php_error.log');

Natuurlijk het pad juist instellen :)
 
Ronny Vangaster

Ronny Vangaster

01/12/2022 07:21:42
Quote Anchor link
Dank je voor de nuttige tip, ik probeer het
 
Jan R

Jan R

01/12/2022 07:22:55
Quote Anchor link
Als ik dan arien's script laat lopen volgt volgende fout in het log
[01-Dec-2022 06:21:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function system() in /customers/4/b/9/janr.be/httpd.www/php/system.php:5
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.