PHP und MYSQLDUMP unter Win2000

Badgott

Erfahrenes Mitglied
Sers ich würde gerne auf meinem windows2000 Server meine mysql db sichern nur leider funtzt das nicht der erstellt immer leere datein wo nichts drinn steht obwohl in der DB eitwas eingetragen ist :-(
Vieleicht kann mir ja wer helfen.

Grezz Badgott

PHP:
<?PHP
$user = "root";
$pass = "xxx";
$database = "xyz";
$filename= $database . "-" . date("H.i.s.d.m.y") . ".sql";
$dump=exec("mysqldump --user=$user --password=$pass --add-drop-table $database > $filename");

if (file_exist($filename))
{
	echo "Datenbank-Dump ausgeführt"; //geht
}
else
{
	echo "Datenbank-Dump nicht ausgeführt"; //geht nicht
}


?>
 
Was du versuchst ist über einen Systemaufruf an
Datenbankdump zu kommen.
Das funktioniert nicht und das ist gut so. Währe
eine wirkliche Sicherheitslücke
 
Erstmal solltest du UNIX oder Linux fuer PHP coden benutzen!!!
Aber bleibt jedem selbst ueberlassen.

verbind dich mit dem Server und gib folgendes ein:
PHP:
% mysqldump -h myhost -u root -pmmypass > dbname_backup.sql

nach einem Serverabsturz:
PHP:
% mysqladmin -h myhost -u root -pmmypass create dbname
% mysql -h myhost -u root -pmmypass < dbname_backup.sql

Eine andere Moeglichkeit ist es, eine Log Datei mitlaufen zu lassen, die alle Anfragen wie INSERT-, UPDATE- und CREATE TABLE-Statements aufzeichnet. SELECT-Statements werden dabei nicht beachtet!
um Update-Logs anzulegen:
PHP:
% safe-mysqld --log-update=update
Dieser Befehl startet den Mysql Server und weist ihn an, Dateien namens update.001, update.002, usw. im Verzeichnis /usr/local/mysql/var (kann abweichen).

Man kann den Server allderdings auch anweisen, dass er ohne weiteres Update-Logs schreibt. Fuege einfach unter mysqld in der my.cnf eine Zeile log-update hinzu.
Unter Windows solte my.cnf unter C:\ sein. Du kannst das allerdings auch in die php.ini im Windows-Verzeichnis hinzufuegen.
PHP:
[ mysqld]
log-update=/usr/backups/mysql/update

jedes beliebige Verzeichnis!

Alte Log Dateien werden NICHT geloescht, was nach einer Zeit, zimliech viel Platz verbrauchen kann. Um die alten zu loeschen, hab ich leider nur en UNIX-Script. Bei Windows machs einfach per Hand.

Einfuegen in die Datenbank geht sehr einfach:
PHP:
% mysqld -u root -pmmypass --one-database db < update.001
% mysqld -u root -pmmypass --one-database db < update.002
...
db ist in dem Fall die Datenbank


So, hoffe dir geholfen zu haben. Per PHP-Script hab ich noch keine Moeglichkeit gefunden von Datenbanken ein Backup zu machen!!!
auf Deutsch: es geht nett! :-)
 
Zuletzt bearbeitet:
Zurück