mysqldump düzgün çalışmıyor

3 Cevap php

Ben yedek veritabanı PHP ile bazı kod yazmak.

Kodumu İşte:

exec("mysqldump --opt -h localhost -u root test > mydb.sql");

Ama benim dosyası (mydb.sql) 0-byte olsun. Ben de passthru (), sistem () ile çalışır, ama yine de 0-byte alır.

Ben komutunu kullanmayı deneyin. Bu çalışıyor.

Benim localhost için en son XAMPP kullanın.

Yani, ben bunu düzgün çalışır hale getirmek için nasıl yapabilirim?

3 Cevap

Büyük olasılıkla bir izin sorunu var, ya da aslında bir parola geçen değiliz. Hataları görmek için kullanarak STDOUT rota STDERR 2>&1

exec("mysqldump --opt -h localhost -u root test > mydb.sql 2>&1", $output);
print_r($output);

Bu size normalde komut satırında görmek istiyorum hataları gösterir.

Büyük olasılıkla mysqldump PHP / Apache 'nin yolunda değildir. Bu kabuk STDERR bir "komut bulunamadı" hatası ve (bir dosyaya yeniden yönlendirmek ve 0 uzunluğu ile biter) STDOUT hiçbir çıktı tükürmek neden olur.

(c:\mysql\bin\mysqldump ya da her neyse) mysqldump ve tekrar denemek için tam yolunu eklemeyi deneyin.

Eğer sonra-u doğrudan gider-p seçeneği ve kullanıcı adı için aynı sonra hiçbir boşluk şifreyi geçmek zorunda

exec ("mysqldump - opt-h localhost-uUSER-ppassword DBNAME> mydb.sql");

i paylaşılan bir bilgisayar üzerinde anter sorun i konak adı ve parola veritabanı kullanıcı adı ve şifre değil kullanmak zorunda çıktı