Se qualcun altro ha questo problema, è perché mysql ora ha utenti anonimi predefiniti aggiunti con accesso limitato.
Il problema è discusso qui .
La prima soluzione non è abbastanza completa, è necessaria quella alla fine che elimina tutti gli utenti anonimi (non solo localhost). Questo perché MYSQL si autenticherà su HOST prima dell'UTENTE, quindi un utente anonimo ''@'your.host.com' avrà la priorità su 'dbuser'@'your.host.com' (documentato in documentazione mysql ) e rubber proveranno a connettersi con il nome host completo.
Modifica il tuo ./config/rubber/deploy-mysql.yml:
rubber.sudo_script "create_master_db", <<-ENDSCRIPT
mysql -u root -e "create database #{env.db_name};"
mysql -u root -e "delete from mysql.user where user='';" <<-- ADD THIS LINE
...
ENDSCRIPT