Para se conectar ao servidor mysql você deve fornecer credenciais. Você pode especificá-los em um arquivo de configuração, passá-los através da linha de comando ou simplesmente criar uma conta que não requer credenciais.
É claro que a opção sem senha nunca deve ser usada, a linha de comando de passagem não é boa porque qualquer um que pode executar ps pode ver a linha de comando.
A opção recomendada é criar um arquivo de configuração do mysql com as credenciais e, em seguida, proteger esse arquivo com permissões do sistema de arquivos para que apenas o usuário de backup possa acessá-lo.
Você pode fazer login no servidor mysql enquanto estiver logado interativamente, já que o root parece sugerir que você não tem um conjunto de senhas root, ou que você tem um arquivo de configuração que não está sendo encontrado pelo seu script. Se você tiver um arquivo .my.cnf, pode ser necessário apontá-lo manualmente. Se a sua conta root não tiver uma senha configurada, recomendamos strongmente que você corrija isso.
Update (2016-06-29) Se você estiver executando o mysql 5.6.6 ou superior, você deve olhar o ferramenta mysql_config_editor que permite que você armazenar credenciais em um arquivo criptografado. Obrigado ao Giovanni por mencionar isso para mim.