1. Having a secondary MySQL server as a slave and backing up from that is the best option
2. Rsyncing the binary files, while not recommended, can be "safe" for INNODB based tables, however you cannot guarantee consistency and may need to check/repair the table once restored. This is not recommended at all for InnoDB tables as you will also need to restore the binary log data, which may cause unforseen issues with other data in the database.
3. For InnoDB you can either use InnoDB hot copy, or use mysqldump with the "?single-transaction" option enabled.
#1 and 3 are the preferred methods
