Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

php & mysql: into outfile / mysqldump

paul01
10 antwoorden
  • Hier is het probleem: ik heb een mysql database, waar continu gegevens aan worden toegevoegd, en van die databasegegevens wil ik een backup maken. Dit draaide op een linux machine met apache, en door de pagina te laden waar deze code op stond, kon je een backup maken:
    [code:1:c484897f26]<?php

    $u = "gebruikernaam";
    $p = "wachtwoord";
    $d = "databasenaam";
    $p = "/home/sites/domein.nl/backup";

    $command = "mysqldump –opt -u$u -p$p $d > $p/backup.sql";

    exec ( $command );

    ?>
    [/code:1:c484897f26]

    Nu is deze site overgezet naar een windows machine (IIS 5.0). Gevolg: dit werkt niet meer! $p wordt dan c:\www\domein.nl\backup, en $command eindigt op \backup.sql… wat naar ik dacht zou moeten werken. Deze foutmelding komt echter boven: [b:c484897f26]Access denied for user: 'ODBC@localhost' (Using password: NO)[/b:c484897f26]. Hoe dit kan, ik heb geen idee!

    Wat het doel is, is dat het door middel van het activeren van een link (naar de betreffende php pagina) heel makkelijk is een backup te maken en te downloaden. Wat dus ook mogelijk is, is iets met select * into oufile… maar ook dit krijg ik niet aan de praat. Iemand tips???

    Bedankt!
    Paul
  • Waarom installeer je niet gewoon phpmyadmin? Die heeft dat standaard ingebouwd, inclusief (g)zippen.
  • Weet ik, maar het gaat er om dat iemand met kennis 0 ook een backup kan maken, door simpelweg een pagina te laden…
  • [code:1:7c7662acdd]
    $u = "gebruikernaam";
    $p = "wachtwoord";
    $d = "databasenaam";
    $p = "/home/sites/domein.nl/backup";
    [/code:1:7c7662acdd]


    Het lijkt erop dat je de $p 2x definieerd……..

    kan ook wel eens de reden zijn dat ie zegt 'use password:NO'
  • Bedankt voor je reactie iljamaas, maar dat is 't niet. Ik heb het verkeerd overgeschreven, $p wordt (helaas) niet twee keer gedefinieerd. Het script zelf werkt prima onder linux, dus in principe zou 't niet aan het script moeten liggen.

    Wat ik nu wel zie, is dat de werkende versie gebruik draait op een systeem met php 4.1.2, en de niet werkende versie staat op een systeem met php 4.3.1.

    Iemand die weet hoe makkelijk de database in tekst formaat weer te geven is??

    Groeten,
    Paul
  • Ik weet het niet helemaal zeker, maar volgens mij werkt exec niet helemaal lekker onder windoos,

    misschien werkt dit wel:
    [code:1:651aae57d4]
    shell_exec("cmd /c c:\hier\daar\enzmysqldump -u…….");
    [/code:1:651aae57d4]

    path en parameters natuurlijk even goed zetten ;)
  • helaas… werkt ook niet. Zelf ben ik aan de slag gegaan met het 'select * into outfile' commando, maar ook deze krijg ik via php niet werkend. Iemand daar ervaring mee (oplossingen met mysqldump ook nog steeds welkom overigens!)?
  • doe eens een
    echo $command;

    misschien zie je dan iets raars.
    en typ het command even over en kijk of het wel werkt..
  • Bedankt voor het meedenken thatsmej… maar het werkt nog niet :( . Hoe ik het commando ook typ, direct (exec(hele_commando)) of met losse variabelen, het werkt niet! Ook shell_exec werkt niet! Niks niks niks :(

    Iemand??!?

    P.S. is er misschien iemand die zelf zoiets werkend krijgt/heeft op Windows??
  • krijg je het op de commandline uberhaupt wel voor elkaar. (dus in de 'dos'-box) ?

    Heeft de 'Apache-user' schrijfrechten in de directory die je aangeeft??

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.