Eu escrevi um script shell simples para despejar um banco de dados mysql específico. O problema é que ele está solicitando uma senha, mesmo que eu forneça. O mysql db é a versão 5.0.27, se isso importa. Aqui está a linha específica que estou usando.
$MYSQLDUMP -u backup -p$MyPass $DB > $DEST/$FILE
Eu tentei várias variações, mas sem sucesso.
Uma solução melhor seria armazenar o nome de usuário e a senha em um arquivo de configuração e apontar para esse arquivo de configuração. Ao colocá-lo na linha de comando, qualquer pessoa que possa executar o ps pode encontrar a senha do seu servidor.
Passe o
--defaults-extra-file=/pathto/database.cnf
dump para o mysql.O arquivo de configuração precisa ter esta aparência. Defina as permissões do sistema de arquivos para que apenas o processo de backup possa abrir o arquivo de configuração.
Atualização (29-06-2016) Se você estiver executando o mysql 5.6.6 ou superior, consulte a ferramenta mysql_config_editor que permite armazenar credenciais em um arquivo criptografado. Agradeço a Giovanni por mencionar isso para mim.
fonte
aoeu1234
, meu arquivo de configuração possuipassword = 'aoeu1234'
; caso contrário, você receberá um erro não autorizado.