Você pode fazer isso usando a função de linha de comando mysqldump .
Por exemplo:
Se for um banco de dados inteiro, então:
$ mysqldump -u [uname] -p db_name > db_backup.sql
Se forem todos os bancos de dados, então:
$ mysqldump -u [uname] -p --all-databases > all_db_backup.sql
Se houver tabelas específicas em um banco de dados, então:
$ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql
Você pode até compactar automaticamente a saída usando gzip (se o 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 tiver acesso ao servidor em questã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 soltar o .sql
arquivo na pasta da qual você executa a linha de comando.
EDIT: atualizado para evitar a inclusão de senhas nos comandos da CLI, use a -p
opção sem a senha. Ele solicitará e não será gravado.