Here is how I take backup of all databases on my MySQL server.
It is all done by a batch script, and can easily be triggered with the windows schedule service.
All you need to do is to copy the following code into a .bat file, edit the hostName, userName, passWord and ttl, and copy mysqldump.exe into the same folder as this script.
The ttl is how many days back you want to store the backup. After that amount of days, it will automatically be deleted.
set hour=%hour: =0%
echo Looking for over %ttl% days old files...
FORFILES /P backup\ /S /D -%ttl% /M *.sql /C "cmd /c del @FILE| echo backup\@FILE is too old, deleting..."
FORFILES /P log\ /S /D -%ttl% /M *.txt /C "cmd /c del @FILE| echo log\@FILE is too old, deleting..."
IF EXIST backup\ GOTO CHECKLOG
echo Creating backup folder.
IF EXIST log\ GOTO BACKUP
echo Creating log folder.
echo Taking backup, please wait...
mysqldump --host %hostName% -u %userName% -p%passWord% --opt --all-databases > backup\%tFileName%.sql --log-error=log\%tFileName%.txt
for /f "tokens=* delims= " %%a in (log\%tFileName%.txt) do ( SET logText=%%a )
echo Backup complete.
The code will place a backup in the \backup\ sub-folder of where the batch file is located, and a log will be stored in \log\, if it is empty, it means that there was no errors from mysqldump