Estou tentando fazer com que o cliente mysql se conecte a um servidor mysql sem exigir que a senha seja fornecida interativamente. Passos dados:
1) Primeiro crie um arquivo mylogin.cnf
$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:
2) Arquivo criado com sucesso:
$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>
3) Conecte-se usando o cliente mysql
$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
Existe algum valor/configuração padrão em algum lugar que faz o cliente ignorar a senha em mylogin.cnf? As propriedades do usuário e do host foram lidas corretamente no arquivo.
Consigo me conectar muito bem se fornecer a senha na linha de comando:
$ mysql -p <dbname>
Enter password:
Reading table information...
...
mysql>
A versão do cliente MySQL é 5.6.22, a versão do servidor MySQL é 5.6.22, ambos no Oracle Linux 6. O cliente e o servidor estão em hosts diferentes.
Obrigado
use o seguinte comando para definir o caminho de login primeiro
e, em seguida, use o comando abaixo para fazer login no mysql
A ajuda sobre as opções de caminho de login do mysql pode ser vista por
Eu tive o mesmo problema que o OP, mas as respostas neste tópico me confundiram. O link de Vinay Mandala realmente funcionou para mim. Repostado aqui para maior clareza.
meu problema:
Isso prova que
mysql_config_editor
não lida com caracteres especiais na senha corretamente.Solução:
Quando
mysql_config_editor
solicitar a senha, certifique-se de colocar a senha entre aspas duplas (") . Depois disso, você pode fazer o login sem problemas.De qualquer maneira, você provavelmente terá uma senha salva em algum lugar. Mesmo o caminho de login do MySQL 5.6 é facilmente descriptografado por qualquer pessoa com a motivação. Esse aviso dizia que essa seria uma solução fácil.
No script do seu ambiente (por exemplo ,
~/.profile
ou~/.bashrc
), definaalias mysql='mysql -uUser -pPasswd -hHostname'
(colocando seu usuário, senha e nome de host desejados, é claro.)
Após o relogin do shell, você poderá simplesmente fazer
mysql
... que usará seu alias e se conectará ao banco de dados e ignorará todas as senhas nos
.my.cnf
arquivos.Nota de segurança: Se houver outros usuários em seu servidor, você pode querer chmod 700 seu script de perfil para que a senha não seja facilmente acessada por outros. Qualquer administrador com root ou sudo ainda poderá vê-lo; não há como contornar isso.
Eu estava recebendo este erro, exceto que dizia (usando a senha: SIM)
O motivo mencionado por Giovanni foi por causa de um "#" na senha. Descobri que uma solução alternativa é inserir aspas em torno de sua senha quando solicitado. A mesma restrição existe com senhas de texto simples usando .my.cnf.
A resposta Nawaz está correta. Tenho pouco a acrescentar. Eu sugiro que você faça algumas tentativas com a variável de ambiente MYSQL_TEST_LOGIN_FILE para criar um novo arquivo de configuração, caso o arquivo padrão esteja corrompido. Use também
--no-defaults
para pular.cnf
arquivos. Se a senha contiver o char#
,mysql login-path
não funciona.Estou encontrando um problema semelhante ao do pôster original. Suspeito que tenha a ver com os caracteres da senha que não são criptografados/descriptografados corretamente.
Para confirmar, tente alterar a senha para algo simples e veja se esse problema desaparece.
Eu tive esse problema com um script de shell. Meu script estava alterando o valor $HOME e isso fazia com que --login-path=*** parecesse ser ignorado. Quando parei de alterar o valor $HOME, ele começou a funcionar.
OBSERVAÇÃO se você estiver tentando executar o
path
usuário linuxroot
- Você não pode simplesmente usarsudo
. Você deve fazer login como root IETambém conforme mencionado em outras postagens aqui .. Você deve usar aspas duplas em torno de sua
mysql
senha se ela contiver algo além de caracteres alfanuméricos.Este post é um pouco antigo e me deparei com isso porque tive o mesmo problema na última semana. Eu estava recebendo o erro abaixo.
Nenhuma das soluções indicadas acima funcionou. Tentei editar o arquivo .mylogin.cnf usando o seguinte.
Isso também não funcionou. Então tentei imprimir tudo o que está configurado usando o abaixo.
Isso deu um erro como abaixo.
.mylogin.cnf tinha 660 (rw-rw----) permissões. Embora certamente esteja um passo acima de 600, acabei de alterar as permissões para 600 (rw-------) e pronto, funcionou. Parece que o aviso "apenas pelo usuário atual" é algo que ignoramos. É estranho. Mas isso é o que funcionou para mim.