Executando a chamada SQL como usuário root no script init.d?

1

Eu tenho uma consulta SQL que deve ser executada em cada inicialização após uma atualização de software (atualizações vêm com novas instalações do mysql e, portanto, alteram a senha do usuário debian-sys-maint, que meu script atualiza no banco de dados). Eu tenho um script que está em /etc/init.d que faz exatamente isso quando eu executo como usuário root: ./update . Mas quando eu inicializo ele não funciona corretamente. Eu executo o comando service para que ele execute o processo init.d , mas ele diz:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO

Eu coloquei uma senha de texto simples em /root/.my.cnf para evitar ter que usá-la em vários outros scripts e melhorar a segurança. Ele pode fazer meu mysql chamar (sem -p ) perfeitamente quando eu chamo o script manualmente, mas não quando eu uso o processo de serviço e não na inicialização. Houve uma menção em outra questão que o ambiente pode não estar configurado corretamente para o script, mas não tenho idéia de quais variáveis de ambiente eu teria que configurar para chamar o mysql em um script para que ele leia /root/.my.cnf .

Já verifiquei se o script é de propriedade de root e se tem 755 permissões. O que tenho que fazer para que isso funcione?

    
por LavaHot 31.10.2014 / 22:50

2 respostas

0

Ao executar um script init.d, a menos que você forneça explicitamente o arquivo .my.cnf no script init.d, ele não será usado. Tipo como crontab. Então, tente pesquisar e ver se funciona.

Em uma nota diferente, esse script precisa fazer login no banco de dados como usuário root? Eu entendo por que o usuário do nível do SO precisa ser root, mas por que um usuário tão privilegiado no próprio banco de dados?

    
por 31.10.2014 / 23:42
0

Acontece que colocar sudo na frente da chamada mysql corrigiu e agora a chamada é executada corretamente. Não faço ideia:

  1. Por que o script não é executado como usuário root.
  2. Qual usuário está sendo executado como.
  3. Por que esse usuário tem habilidades de sudoer.
por 05.11.2014 / 00:01

Tags