[php][mysql] mysqldump vanaf windows

Pagina: 1
Acties:

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Ik ben sinds 7 uur vanavond bezig om in een script een database backup te verwerken, maar het wil maar niet...

Eerst ben ik erachter gekomen dat ik met dubbele \\ de directory moest aanduiden in het script, maar nu dat eenmaal klopt loop ik tegen het volgende probleem aan waar ik echt niet uit kom.
PHP:
1
<?    error_reporting(E_ALL);    $connect = mysql_connect("localhost","x-user","y-pass");    $selectdb = mysql_select_db("m'ndatabase", $connect);    system("C:\\phpdev3\\mysql3.23\\bin\\mysqldump -h localhost -u root -p m'ndatabase > blaat.sql");?>

Het probleem: het script blijft hangen, gaat niet verder, blijft maar laden. Ik heb het ook in DOS geprobeerd, maar ook daar gebeurde er niets toen ik het mysqldump commando had gegeven. Wat in DOS wel werkte was op 2x op enter te drukken, 1x na het mysqldump command, 1x daarna. Hier kom ik niet uit... (JA, ik heb gezocht. Of deze functie is zo makkelijk dat niemand erom vraagt, of ik zoek niet goed / het komt niet vaak voor).

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Vervang "system" es door print en voer het daar afgedrukte commando uit op de prompt.

Ow en ik hoop niet dat je echte root-pw is? :)

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
C:\phpdev3\mysql3.23\bin\mysqldump -h localhost -u root -p boekhouding > blaat.sql is de output, in msdos (mits je dat met prompt bedoelt) blijft hij dus ook hangen, totdat ik weer op enter druk.

Hij maakt overigens wel alvast de file aan, maar die is 0kb en maakt hem nooit af (tenzij ik in msdos een 2e keer op enter druk). En nee, dit is niet m'n echte root account :D

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je moet natuurlijk nog wel ergens je password intikken ;)
Maak er es van -ppassword (dus direct ertegenaan).

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Nou jah, ik heb geen password ingesteld, dit is maar m'n devbak die niet verbonden is met internet. En ja, het is dus gewoon user: root, pass: niet ingevuld. :Y)

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Ok, ik heb het, gooi maar dicht. Ik had dus geen -p toe moeten voegen |:( Nu achteraf weet ik dus ook waarom ik 2x op enter moest douwen, hij vroeg blijkbaar nog een keer naar het wachtwoord ofzo. Op de search had ik gevonden dat bij -p mysql het bijbehorende password zou zoeken (bij rootaccount), dus ik het die parameter toegevoegd, niet slim...

Maar goed, ACM, bedankt voor je snelle hulp :)

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Sorry, nog 1 vraag mbt backuppen van database op diskette...

Ik heb een script gemaakt, dat zo ongeveer werkt:
-check of a:\blaat.bla bestaat, zo ja, er zit een diskette in
-check of de inhoud daarvan is: blaaaaaaaat, zoja, de diskette hoort bij dit programma
-zet de mysqldump op diskette en HD, vergelijk daarna deze 2, ongelijk? -> foutmelding

Maar het probleem: ik kan wel checken op blaat.bla, maar als die niet op een floppy staat, zegt'ie dat er geen diskette in zit. Ik doe dit dmv "fopen("A:\\blaat.bla\","rb")". Ik heb al geprobeerd: "fopen("A:\\","rb")" maar dat werkte niet... (foutmelding: permission denied)

Dus weet iemand hoe ik kan checken OF er een diskette in zit, waarbij de inhoud ervan geen invloed heeft?

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Heeft niemand een idee? Wie doorbreekt m'n monoloogje? :D

  • Grum
  • Registratie: Juni 2001
  • Niet online
onderdruk de melding met een '@' en vang de 'false' af

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Dat had ik wel gedaan, maar ook wanneer er wel een diskette inzit geeft hij dan 'false'. Maar misschien doe ik wat fout? Want ik kan me herinneren dat je een site-url controleert met fopen("http://www.blaat.com/","r"), maar de vraag is dan: wat opent PHP? Want dan zou hij ook zoiets op een lege diskette moeten kunnen toch?

  • Grum
  • Registratie: Juni 2001
  • Niet online
PHP opent een socket, doet een request, fetched de data en is klaar.

Ik hoop wel dat je de A:\ op de server wilt aanspreken he ?

  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Het gaat uiteraard om een floppy in de server ;)

Maar iig, dit is de code die ik gebruik:
PHP:
1
<?  //--open A:    $openfile = @fopen("A:\\","rb");  //--als er geen floppy aanwezig is, geef melding en sluit venster    if (!$openfile) {         melding("Geen diskette aanwezig!");         die("<script language=\"JavaScript\">\nwindow.close();\n;</script>");    }?>

(melding is een fuctie die een JS alert-box opent met het bericht)

Wat gebeurt er? Het diskette lampje brandt, maar als er een diskette inzit geeft hij toch aan dat hij A:\ niet kan openen (permission denied).

Maak ik een domme fout of is dit niet mogelijk :?

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

misschien iets met is_dir("a:\\")?

On track


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Nog beter: is_writable():
Returns TRUE if the filename exists and is writable. The filename argument may be a directory name allowing you to check if a directory is writeable.

On track


  • Rickbv
  • Registratie: September 2000
  • Laatst online: 22:30
Jammer, beide werken ze niet. Ik heb ook nog is_readable geprobeerd, maar dat gaf het zelfde resultaat.

Volgens mij kijkt hij wel of A:\ bestaat, maar niet of daar media inzit. Want als er geen diskette in zit, geeft hij nog steeds TRUE.

Maar is er geen algemene file dat op elke diskette voorkomt ofzo? Ik bedoel, waar is de diskname / filesystem info opgeslagen?

Ik begin me overigens steeds meer af te vragen of dit wel kan :'(

[edit]
WIEEEEE hij doet het! :)
ik heb het opgelost met diskfreespace(), misschien niet de netste oplossing, maar hij werkt wel :Y)
Pagina: 1