Bash “Rotating” MySQL backup
I'd do this:

#!/bin/bash

backuppath=/var/mysql_backup
mkdir -p "$backuppath"

shopt -s nullglob

# Remove old compressed archive
backups=( "$backuppath"/*.gz )
if [[ ${#backups[@]} -gt 0 ]]; then
    stat -c "%Y %n" "${backups[@]}" |
      sort -rn |
      sed -e '1,7d' -e 's/^[0-9]\+ //' |
      xargs -r rm
fi

# Compress all the logs
logs=( "$backuppath"/*.sql )
if [[ ${#logs[@]} -gt 0 ]]; then
    gzip "${logs[@]}"
fi

/usr/bin/mysqldump -u db_user -p'password' --single-transaction --all-databases \
    &gt; "$backuppath/"$(date "+%Y.%m.%d-%H.%M.%S")_dump.sql


Notes:


don't use ALLCAPSVARS -- leave those for the shell. I've seen people accidentally do PATH=... and then wonder why their script is broken.
don't parse ls -- I'm using arrays to hold the results of the glob expansion, and checking how many elements are in the array.
always quote variables, except when you know exactly why not. See https://unix.stackexchange.com/q/171346/4667
I'm assuming you want to compress any log.sql file, not just the first found
I'm assuming you want to keep 7 compressed logs and remove any older ones.
I'm assuming you have the GNU coreutils (xargs -r, those stat options)