AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 86595
Accepted
Lefteris Koutsoloukas
Lefteris Koutsoloukas
Asked: 2014-12-20 01:25:11 +0800 CST2014-12-20 01:25:11 +0800 CST 2014-12-20 01:25:11 +0800 CST

Como posso fazer com que o cliente MySQL leia a senha de mylogin.cnf?

  • 772

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

mysql mysql-5.6
  • 9 9 respostas
  • 24390 Views

9 respostas

  • Voted
  1. Nawaz Sohail
    2014-12-20T05:46:41+08:002014-12-20T05:46:41+08:00

    use o seguinte comando para definir o caminho de login primeiro

    mysql_config_editor set --login-path=lgpath --user=root -p
    senha

    e, em seguida, use o comando abaixo para fazer login no mysql

    mysql --login-path=lgpath

    A ajuda sobre as opções de caminho de login do mysql pode ser vista por

    mysql_config_editor set --help

    • 15
  2. quexy
    2019-03-12T01:57:36+08:002019-03-12T01:57:36+08:00

    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:

    ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
    

    Isso prova que mysql_config_editornão lida com caracteres especiais na senha corretamente.

    Solução:

    Quando mysql_config_editorsolicitar a senha, certifique-se de colocar a senha entre aspas duplas (") . Depois disso, você pode fazer o login sem problemas.

    • 6
  3. Best Answer
    Joshua Huber
    2015-02-28T06:14:32+08:002015-02-28T06:14:32+08:00

    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 , ~/.profileou ~/.bashrc), defina

    alias 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.cnfarquivos.

    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.

    • 2
  4. gamorten
    2018-06-21T15:21:53+08:002018-06-21T15:21:53+08:00

    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.

    • 1
  5. Giovanni
    2015-02-28T05:35:18+08:002015-02-28T05:35:18+08:00

    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-defaultspara pular .cnfarquivos. Se a senha contiver o char #, mysql login-pathnão funciona.

    $ export MYSQL_TEST_LOGIN_FILE=$HOME/mylogin.cnf
    
    $ mysql_config_editor set --login-path=mytest --host=127.0.0.1 --port=5622 --user=mytest --password
    Enter password:
    
    $ ls -l $MYSQL_TEST_LOGIN_FILE
    -rw------- 1 mysql mysql 288 Feb 27 14:25 mylogin.cnf
    
    $ mysql --no-defaults --login-path=mytest test
    
    • 0
  6. Plazgoth
    2016-09-20T09:36:30+08:002016-09-20T09:36:30+08:00

    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.

    • 0
  7. dbCarl
    2018-03-22T13:38:44+08:002018-03-22T13:38:44+08:00

    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.

    • 0
  8. Zak
    2020-03-19T11:00:42+08:002020-03-19T11:00:42+08:00

    OBSERVAÇÃO se você estiver tentando executar o pathusuário linux root - Você não pode simplesmente usar sudo. Você deve fazer login como root IE

    user@server:$ sudo su
    user@server:$ Enter Password
    root@server:$ mysql_config_editor set --login-path=data-main --user=<user> --password --host=<host>
    root@server:$ Enter Password
    root@server:$ exit
    user@server:$ ...
    

    Também conforme mencionado em outras postagens aqui .. Você deve usar aspas duplas em torno de sua mysqlsenha se ela contiver algo além de caracteres alfanuméricos.

    • 0
  9. Die-Bugger
    2021-07-04T19:25:02+08:002021-07-04T19:25:02+08:00

    Este post é um pouco antigo e me deparei com isso porque tive o mesmo problema na última semana. Eu estava recebendo o erro abaixo.

    mysqldump: [Warning] /home/<user>/.mylogin.cnf should be readable/writable only by current user.
    mysqldump: Got error: 1045: Access denied for user '<user>'@'localhost' (using password: NO) when trying to connect
    

    Nenhuma das soluções indicadas acima funcionou. Tentei editar o arquivo .mylogin.cnf usando o seguinte.

    mysql_config_editor set --login-path=dba --host=localhost --user=<user> --password
    

    Isso também não funcionou. Então tentei imprimir tudo o que está configurado usando o abaixo.

    mysql_config_editor print --all
    

    Isso deu um erro como abaixo.

    WARNING : Login file does not have the required file permissions.
    Please set the mode to 600 & run the command again.
    operation failed. : No such file or directory
    

    .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.

    • 0

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve