Eche un vistazo aquí: https://github.com/ifsnop/mysqldump-php ! Es una solución nativa escrita en php.
Puede instalarlo usando Composer, y es tan fácil como hacerlo:
<?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();
}
?>
Es compatible con usuarios avanzados, con muchas opciones copiadas del mysqldump original.
Todas las opciones se explican en la página de github, pero más o menos son autoexplicativas:
$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()
.