Para usar um arquivo que esteja em qualquer lugar dentro do sistema operacional, use, --defaults-extra-file
por exemplo:
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > [desiredoutput].sql
Nota: .sqlpwd
é apenas um exemplo de nome de arquivo. Você pode usar o que quiser.
Nota: O MySQL irá verificar automaticamente ~/.my.cnf
qual pode ser usado em vez de--defaults-extra-file
Se você estiver usando o CRON como eu, tente isso!
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > "$(date '+%F').sql"
Permissão necessária e propriedade recomendada
sudo chmod 600 /path/.sqlpwd && sudo chown $USER:nogroup /path/.sqlpwd
.sqlpwd
conteúdo:
[mysqldump]
user=username
password=password
Outros exemplos para passar .cnf
ou.sqlpwd
[mysql]
user=username
password=password
[mysqldiff]
user=username
password=password
[client]
user=username
password=password
Se você deseja efetuar login automaticamente em um banco de dados, precisará da [mysql]
entrada, por exemplo.
Agora você pode criar um alias que o conecta automaticamente ao banco de dados
alias whateveryouwant="mysql --defaults-extra-file=/path/.sqlpwd [database]"
Você também pode inserir a senha apenas .sqlpwd
e passar o nome de usuário através do script / cli. Não tenho certeza se isso melhoraria a segurança ou não, isso seria uma pergunta totalmente diferente.
Para garantir a integridade, declararei que você pode fazer o seguinte, mas é extremamente inseguro e nunca deve ser usado em um ambiente de produção:
mysqldump -u [user_name] -p[password] [database] > [desiredoutput].sql
Nota: NÃO HÁ ESPAÇO entre -p e a senha.
Por exemplo, -pPassWord
está correto enquanto -p Password
está incorreto.