Eu tenho em pull_news.sh (declarações de variáveis omitidas):
dump_table () {
mysqldump --user=${REMOTE_USERNAME} --password=${REMOTE_PASSWORDS} --host=${REMOTE_HOST} --port=${REMOTE_PORT} --single-transaction --lock-tables=false $@
}
pull_news(){
dump_table --set-gtid-purged=OFF --where="INFOCODE IN (SELECT INFOCODE FROM info_an_newsrelation WHERE MKTPOSTFIX = '.OC')" ${REMOTE_DBNAME} info_an_newscontent > ${DUMPFILE}
}
pull_news
Depois
$ ./pull_news.sh
Eu obtive
mysqldump: Got error: 1044: Access denied for user 'user'@'%' to database 'in' when selecting the database
O problema desapareceu se eu remover a cláusula where, então parece-me que, por algum motivo desconhecido, o shell pegou apenas a primeira palavra da minha cláusula where e analisou a segunda palavra (the IN
) como um nome de banco de dados.
Depois troquei por
--where="\"INFOCODE IN (SELECT INFOCODE FROM info_an_newsrelation WHERE MKTPOSTFIX = '.OC')\""
mas não funcionou. Não sei o que fazer agora, qualquer ajuda é bem vinda...