Dê uma olhada aqui: https://github.com/ifsnop/mysqldump-php ! É uma solução nativa escrita em php.
Você pode instalá-lo usando o composer, e é tão fácil quanto fazer:
<?php
use Ifsnop\Mysqldump as IMysqldump;
try {
$dump = new IMysqldump\Mysqldump('database', 'username', 'password');
$dump->start('storage/work/dump.sql');
} catch (\Exception $e) {
echo 'mysqldump-php error: ' . $e->getMessage();
}
?>
Ele suporta usuários avançados, com muitas opções copiadas do mysqldump original.
Todas as opções são explicadas na página do github, mas mais ou menos são auto-explicativas:
$dumpSettingsDefault = array(
'include-tables' => array(),
'exclude-tables' => array(),
'compress' => 'None',
'no-data' => false,
'add-drop-database' => false,
'add-drop-table' => false,
'single-transaction' => true,
'lock-tables' => false,
'add-locks' => true,
'extended-insert' => true,
'disable-foreign-keys-check' => false,
'where' => '',
'no-create-info' => false
);
mysqldump
porsystem()
.