Acabei de instalar o MySQL e, por padrão, o usuário root não tem senha. Se eu conectar com este comando:
mysql --port=3307 --host=127.0.0.1 -uroot -p
Ele me pede para inserir uma senha, apenas aperto Enter e ele me conecta. No entanto, quero tornar isso parte de um script, canalizando uma instrução para ele de forma não interativa, assim:
echo "$statement" | mysql --port=3307 --host=127.0.0.1 -uroot -p
Mas, quando eu realmente faço isso, ele ainda me pede a senha. Como faço para NÃO pedir a senha e simplesmente não usar uma?
Eu tentei remover o -p e recebo esta mensagem:
$ mysql --port=3307 --host=127.0.0.1 -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Eu esperaria que houvesse algum tipo de argumento --nopassword, mas não consigo encontrar um.
Acontece que a resposta é realmente usar o -p - a versão longa permite que você a defina como vazia, assim:
Se a versão do seu cliente/servidor MySQL for uma forma 5.6.xa de evitar a
WARNING
mensagem ou colocar umpassword in command line
, você pode usar as ferramentas mysql_config_editor :Então você pode usar em seu script de shell:
Ao invés de: