Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mysql Rücksicherung per PHP bzw. Cronjob

Frage Entwicklung Datenbanken

Mitglied: 8schpi

8schpi (Level 1) - Jetzt verbinden

24.12.2008, aktualisiert 18:47 Uhr, 7175 Aufrufe, 9 Kommentare

Rücksicherung einer Mysql Datenbank automatisieren.

Frohe Weihnachten allerseits.

Ich möchte eine Datenbank automatisch (per CronScript) rücksichern. Zweck der Übung ist, dass ich eine Demoumgebung haben möchte, die quasi alle 24 Stunden zurückgesetzt wird. Dazu soll ein vorher erstellter Dump der Datenbank per CronScript zurückgesichert werden. Ich habe schon folgendes Ausprobiert:
01.
      <?php 
02.
      exec('mysql -u dbuser -p dbname < ./dump.sql'); 
03.
      ?>
Leider funktioniert das nicht. Der Webhoster ist All-inkl. Ich habe natürlich Zugriff auf CronJobs. Die PHP Datei oben soll der Cronjob werden...
Hat jemand eine Idee? Danke.
Mitglied: EvilMoe
24.12.2008 um 18:57 Uhr
Warum nicht einfach so. Warum dein Versuch nicht funktioniert denke ich mal das du kein Zugriff auf "exec" haben wirst.

01.
<? 
02.
 mysql_connect('localhost', 'name', 'passwort'); 
03.
 mysql_select_db('dbname'); 
04.
 mysql_query(readfile('./dump.sql')); 
05.
?>
Bitte warten ..
Mitglied: 8schpi
25.12.2008 um 10:53 Uhr
Zugriff auf exec() habe ich (http://www.all-inkl.de/index.php?open=faq&sek=wichtig&session_i ... unter Punkt 5). Ein weiteres Problem dass ich habe ist, dass ich auch die automatische Sicherung per Perl und Mysqldumper nicht hinbekomme. Wahrscheinlich hat beides die gleiche Ursache.
Sobald ich zuhause bin werde ich das obige Beispiel ausprobieren. Woher erfahre ich eigentlich worauf ich genau Zugriff habe, bzw. welche Fehlermeldungen ausgegeben werden?
Bitte warten ..
Mitglied: 8schpi
25.12.2008 um 22:45 Uhr
Also ich habe die obigen Zeilen mal ausprobiert. Ich bekomme jetzt den Inhalt von der dump.sql Datei beim Aufruf der PHP Datei angezeigt. Warum wird der Inhalt der Datei nicht in die Tabelle eingefügt, sondern auf dem Bildschirm angezeigt?
Bitte warten ..
Mitglied: EvilMoe
25.12.2008 um 22:54 Uhr
Zitat von 8schpi:
Also ich habe die obigen Zeilen mal ausprobiert. Ich bekomme jetzt den
Inhalt von der dump.sql Datei beim Aufruf der PHP Datei angezeigt.
Warum wird der Inhalt der Datei nicht in die Tabelle eingefügt,
sondern auf dem Bildschirm angezeigt?

Sorry, readfile gibt den Inhalt sofort aus und nicht als Rückgabewert. Ersetze mal readfile gegen file_get_contents.

Auch wenn du Zugriff auf exec hast halte ich das zur Rücksicherung in diesem Fall nicht notwenig da PHP die nötigen Funktionen bietet.

Woruaf man Zugriff hat? Naja ausprobieren^^ oder mit phpinfo nachgucken welche Module geladen sind. Fehlermeldungen kann man sich anzeigen lassen indem man am Anfang der PHP Datei schreibt: error_reporting(E_ALL);

Damit werden alle Fehler/Warnungen angezeigt. Hoffe ich habe die Frage richtig verstanden...
Bitte warten ..
Mitglied: 8schpi
25.12.2008 um 23:23 Uhr
ok, das "restore-skript" sieht jetzt so aus:
01.
<? 
02.
 
03.
mysql_connect('localhost', 'user', 'passwort'); 
04.
mysql_select_db('dbname'); 
05.
mysql_query(file_get_contents('pfad_zur_sql_datei')); 
06.
 
07.
?>
ich bekomme den inhalt der datei jetzt nicht mehr angezeigt. es wird gar nichts mehr angezeigt. aber der inhalt der sql datei wird auch nicht ausgeführt / in die db eingefügt.

auch mit
01.
error_reporting(E_ALL);

am anfang der datei wird nichts angezeigt...
Bitte warten ..
Mitglied: EvilMoe
25.12.2008 um 23:29 Uhr
Mit file_get_contents wird auch nix mehr angezeigt. Du könntest überprüfen mit mysql_error() ob ein Fehler beim ausführen des SQL Querys aufgetreten ist.

Also nach mysql_query()

01.
echo mysql_error();
Ich denke mal du hast auch alles ausgetauscht wie den Benutzernamen, Passwort und die Datei???

Da ich nicht weiß was in deiner SQL Datei steht kann ich auch nicht sagen ob das überhaupt funktionieren kann wie du dir das vorstellst. Wenn nämlich in deiner SQL alles INSERT's sind und die Datenbanken auch erstellt werden dann müsste man vorher die Datenbanken löschen.
Bitte warten ..
Mitglied: 8schpi
25.12.2008 um 23:30 Uhr
es liegt nur noch an der form der sql datei... ich hab mal eine manuelles "drop table 'wichtige_tabelle'" statt des fil_get_contents('pfad_zur_sql_datei') geschrieben. dann habe ich gemerkt, dass der rest funktioniert. jetzt muss ich nur noch rausbekommen, wie ich die datei in die richtige form bekomme.
Bitte warten ..
Mitglied: EvilMoe
25.12.2008 um 23:37 Uhr
Zitat von 8schpi:
es liegt nur noch an der form der sql datei... ich hab mal eine
manuelles "drop table 'wichtige_tabelle'" statt
des fil_get_contents('pfad_zur_sql_datei') geschrieben. dann
habe ich gemerkt, dass der rest funktioniert. jetzt muss ich nur noch
rausbekommen, wie ich die datei in die richtige form bekomme.

Du weißt aber das dort der Pfad zu deinem SQL Dump drin stehen muss? ALso z.B. "./ordner./dumps./file.sql".

Wie ich schon sagte. Ich weiß nicht was in deiner SQL Datei steht vielleicht ist auch ein manuelles DROP Table nötig
Bitte warten ..
Mitglied: 8schpi
26.12.2008 um 00:05 Uhr
wahrscheinlich ist die lösung zum greifen nahe...

sehr wahrscheinlich liegt es an der form der sql datei. das "drop table wichtige_tabelle" funktioniert jetzt auch schon mit dem lesen aus der datei heraus. nur der komplette dump muss jetzt noch in form gebracht werden. aber das spare ich mir für morgen auf. danke für die hilfe. ich melde mich wenn ichs hinbekommen habe.

leider wird das noch etwas dauern weil es ziemlich zeitintensiv ist...
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Datenbanken
gelöst Eine Art Access, nur mit PHP und MySQL? (14)

Frage von McLion zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...