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 um valor / configuração padrão em algum lugar que faz o cliente ignorar a senha no mylogin.cnf? As propriedades do usuário e do host foram lidas corretamente no arquivo.
Consigo me conectar muito bem se eu 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 MySQL Server é 5.6.22, no Oracle Linux 6. O cliente e o servidor estão em hosts diferentes.
obrigado
-pyour_pass
ou--password=your_pass
na linha de comando (...) Isso é conveniente, mas não é seguro ."use o seguinte comando para definir o caminho de login primeiro
e então use o comando abaixo para entrar no mysql
A ajuda sobre as opções do caminho de login do mysql pode ser vista por
fonte
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. Republicado aqui para maior clareza.
Meu problema:
Isso prova que
mysql_config_editor
não trata caracteres especiais na senha corretamente.Solução:
Quando
mysql_config_editor
a senha for solicitada, certifique-se de colocar a senha entre aspas duplas (") . Depois, você poderá fazer login corretamente.fonte
Eu estava recebendo esse erro, exceto pelo 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 sua senha quando solicitado. A mesma restrição existe com senhas de texto sem formatação usando .my.cnf.
fonte
A resposta Nawaz está correta. Eu tenho pouco a acrescentar. 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, apenas no caso de o arquivo padrão estar corrompido. Use também
--no-defaults
para pular.cnf
arquivos. Se a senha contiver o caractere#
,mysql login-path
não funcionará.fonte
mysql
comando execmysql
? Se não, alterar o proprietário domylogin.cnf
e deve obras :)Estou com um problema semelhante ao do pôster original. Suspeito que tenha a ver com caracteres na senha que não são criptografados / descriptografados corretamente.
Para confirmar, tente alterar a senha para algo simples e veja se esse problema desaparece.
fonte
Eu tive esse problema com um script de shell. Meu script estava alterando o valor $ HOME e isso fez com que o --login-path = *** parecesse ser ignorado. Quando parei de alterar o valor $ HOME, ele começou a funcionar.
fonte
OBSERVAÇÃO se você estiver tentando executar o usuário
path
sob o Linuxroot
- Você não pode simplesmente usá-losudo
. Você deve fazer login como root IETambém como mencionado em outras postagens aqui .. Você deve usar aspas duplas em sua
mysql
senha se ela contiver algo além de caracteres alfanuméricos.fonte