There are more than a few graphical tools to do this but I find the simple command mysqldump to be more than enough for this task.
I use mysqldump for backup and I use it to transfer up to date databases between my production and development servers.
What you need is a shell account on your web server or, if your MySQL configuration supports it you can run it from a workstation. It’s generally a good idea to only let a user log in from localhost so that’s the way I use it.