Você pode fazer isso usando o mysqldump função de linha de comando.
Por exemplo:
Se for um banco de dados inteiro, então:
$ mysqldump -u [uname] -p db_name > db_backup.sql
Se forem todos DBs, então:
$ mysqldump -u [uname] -p --all-databases > all_db_backup.sql
Se forem tabelas específicas dentro de um banco de dados, então:
$ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql
Você pode até mesmo compactar automaticamente a saída usando gzip (se seu banco de dados for muito grande):
$ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz
Se você quiser fazer isso remotamente e você tem acesso ao servidor em questão, então o seguinte funcionaria (presumindo que o servidor MySQL esteja na porta 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql
Ele deve descartar o
.sql
arquivo na pasta da qual você executa a linha de comando. EDITAR: Atualizado para evitar a inclusão de senhas nos comandos da CLI, use o
-p
opção sem a senha. Ele irá solicitar isso e não gravá-lo.