mysqldump
precisará de uma senha para o usuário mysql root . Se você não fornecer essa senha, não funcionará, sudo
ou não sudo
.
mysqldump
pode consultar seu arquivo .my.cnf
para obter a senha e obterá do usuário executando o comando mysqldump
. Portanto, se o usuário do Linux root tiver um .my.cnf configurado com uma senha, então sim, sudo
ajudará. No entanto, se o usuário mysql root tiver uma senha e não estiver configurado em nenhum .my.cnf
, então sudo
não ajudará.
Você pode adicionar o usuário e a senha do mysql root ao seu usuário .my.cnf
e então você não precisa do sudo
, mas isso é um risco de segurança.
Como as outras respostas também apontam, você pode precisar de sudo
para escrever a saída em algum lugar que root (Linux, não mysql) possua.
Por último, você não nos diz qual usuário está executando o script, se ele está no crontab root (por exemplo), então sudo
não será necessário, embora você ainda possa precisa de um .my.cnf
para fornecer a senha.
Se o seu usuário mysql root não tiver nenhuma senha configurada, o único problema é escrever a saída. Nesse caso, sudo
é necessário se você não executar o script como root .
Se você executar o script como raiz (por exemplo, como um script em /etc/cron.daily
), não deverá usar o sudo no script, independentemente de todos os comentários acima.