Ich purge mein Binlog immer nach jedem Full Backup - gebraucht wird' s ja eigentlich für ein Roll Forward/Point-in-Time-Recovery. Den Befehl dafür bringt MySQL selbst mit:
#Im MySQL-Client
purge master logs to <letztes-binlog-file>
#Oder von der Shell
mysql -uroot -ptop_secret -e "purge master logs to <letztes-binlog-file>"
Wie flo schon geschrieben hat - tu das nur, wenn Du das Binlog bis zu <letztes-binlog-file> nicht mehr brauchst (z. B. weil Du einen vollständigen mysqldump der Datenbank oder ein Full Backup des Datenverzeichnisses) gezogen hast. Schau Dir mal die Stickies von isotopp an - insbesondere MySQL 7: Niemand will Backup, alle wollen Restore. oder den passenden Artikel im RootForum-Wiki.
`flush-logs` sorgt dafür, dass zum Zeitpunkt des Backups keine offenen Transaktionen mehr im Binlog hängen (vorausgesetzt, Du sorgst mit geeigneten Locks oder einem Shutdown des DB-Servers dafür, dass nach dem flush-logs keine schreibenden Transaktionen mehr eintrudeln können, bis das Backup durch ist). Demnach könntest Du nach einem Backup das Binlog ruhig purgen, falls Dir an Transaktionen zu anderen Datenbanken als zu der von Dir gesicherten nichts liegt bzw. Du die Daten anderweitig wieder herstellen könntest.