When you log slow queries or queries without indexes in MySQL, you should regularly rotate the file to save disk space. Quite some suggestions on the internet involve complex scripts which do this, other suggestions discuss FreeBSD's log rotator newsyslog. However, most of the descriptions about newsyslog appeared wrong to me, because no PID file was specified for the rule. This means that a SIGHUP is sent to the syslog daemon instead of the mysqld process, which is undesired. When the MySQL process receives a SIGHUP, it will call FLUSH LOGS and FLUSH PRIVILEGES. With the first command is assured that the newly created log file will be used for logging.
So the fix is to provide the path to the PID file. By default it is to be found in the data directory, but it might be /var/run as well. The correct entry in /etc/newsyslog.conf would be:
Note: this should be on one line. Of course you can use different users, permissions or flags, as long as there's an entry for the PID file.