PHP kullanarak `mysqldump` çalışmasından kaynaklanan boş dosyaları

4 Cevap php

Ben çalışan oluşturulan boş dosyaları almaya devam

$command = 'mysqldump --opt -h localhost -u username -p \'password\' dbname > \'backup 2009-04-15 09-57-13.sql\'';

command($command);

Herkes bu neden olabilir ne biliyor musun? Şifrem o garip karakterler var ama db bağlantı ile çalışıyor.

I exec($command, $return) koştu ve $ dönüş dizi çıktılanmasını ve komutu bulgudur ettik. Ben de mysqldump > file.sql ile koştu ettik ve dosya içeriyor

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

Yani komut çalışıyor gibi görünüyor.

4 Cevap

Remove the space -p ile şifre arasındaki. Işe yaramadıysa, parola tırnak kaldırmaya çalışın

dan MySQL documentation,

Eğer kısa seçeneği formu (-p) kullanıyorsanız, cannot seçeneği ve şifre arasında bir boşluk var.

Ancak, -h ve -u seçenekleri ile boşluk olması güzel

Ben arası u ve gerçek adı boşluk vardır inanıyorum.

host: localhost user: peter password: pwd

olacak:

-hlocalhost -upeter -ppwd

To put it in plain english, make sure to use the following options (all of them).
--user=USERNAME
--host=localhost
--password=****

Bir sonraki seçenek olmayan ifade veritabanı adı olmalıdır. Komut olmayan başka bir seçenek tarafından ifadesinin ardından ise, tablo adları olarak kabul edilecektir.

$command="mysqldump --xml --host=localhost --user=USERNAME --password=***** DBNAME > XMLTABLE.xml";
system($command);

Bu ben yaptım nasıl - çıkış azami gzip sıkıştırma ile:

<?php exec("/usr/bin/mysqldump --opt --host=MYSQLHOSTNAME --user=MYSQLUSER --password=PASSWORD DATABASENAME | gzip -v -9 >DATABASENAME.". date("Y-m-d_H-i-s") . ".sql.gz");?>