A primeira coisa que você deve fazer para evitar que isso aconteça novamente está substituindo todas as instâncias do MySQL que você tem.
Embora eu recomende que você não considere pagar pelos seus dados, se precisar, mantenha uma instância em volta que permita recuperar esses dados, depois faça o download o mais rápido possível, verifique e verifique novamente o despejo e importe-o uma instalação limpa.
Se você não puder recuperar seus dados, queime tudo no chão e comece de novo.
@ as sugestões do xs2rashid são definitivamente boas. Certamente considere não permitir qualquer acesso que você não precise - por exemplo, colocar tudo na lista de permissões, em vez de usar uma lista negra.
Eu também sugiro que você faça questão de garantir que execute mysql_secure_installation em seus nós, e use um gerenciador de senhas (por exemplo, KeePass) para gerar senhas strongs.
Melhor ainda é usar um CA / PKI - o cfssl facilita a geração dos certificados necessários para isso.
Você pode querer usar o fail2ban para ajudar a bloquear qualquer coisa suspeita também ( Como faço para configurar o monitoramento do MySQL com o Fail2ban? ), como uma proteção contra erros em suas proteções de rede.
Você também expõe o SSH ao mundo, o que significa que você certamente quer garantir que está usando a autenticação de chave pública, não permitindo logins de raiz e restringindo o acesso / login ao SSH tanto quanto possível (por exemplo, limitar o acesso à rede e limitar quais usuários / grupos podem fazer login).
Eu tenderia a pensar que você poderia ganhar lendo os benchmarks de CIS apropriados para sua distro, e considere aplicar pelo menos alguns das suas recomendações.