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 / 47842
Accepted
Praveen Prasannan
Praveen Prasannan
Asked: 2013-08-09 20:24:54 +0800 CST2013-08-09 20:24:54 +0800 CST 2013-08-09 20:24:54 +0800 CST

MYSQL ERROR 2049 (HY000): Conexão usando o protocolo de autenticação antigo (pré-4.1.1) ref usado (opção do cliente 'secure_auth' habilitada)

  • 772

quando tentei restaurar todo o dump do banco de dados que está na versão 5.0 para a versão 5.6, ele foi restaurado e depois disso, quando tentei reconectar, estou recebendo o seguinte erro

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)..

Eu tentei adicionar as seguintes linhas no My.ini e reiniciei o serviço, mas o problema persiste até.

skip-grant-tables O link a seguir diz que é um bug no MYSQL.

https://github.com/santisaez/powerstack/blob/master/packages/mysql/mysql-powerstack-secure_auth.patch

Alguém tem alguma correção para esta solução?

mysql authentication
  • 4 4 respostas
  • 35207 Views

4 respostas

  • Voted
  1. ShaunOReilly
    2014-08-01T18:33:10+08:002014-08-01T18:33:10+08:00

    Na linha de comando, use algo como o seguinte, se você não tiver escolha...

    mysql -uTheUseerNAme -pThePassword DbName -h HostName --skip-secure-auth
    

    Espero que isso ajude alguém, pois esse foi o meu problema ao conectar de um Linux

    • 8
  2. Best Answer
    Michael - sqlbot
    2013-08-09T21:06:30+08:002013-08-09T21:06:30+08:00

    Isso não é um bug se você tiver contas de usuário com senhas que usaram o antigo algoritmo de hash antigo. Se você ler o relatório de bug mencionado no link que você postou:

    http://bugs.mysql.com/bug.php?id=69027

    [1 de maio 15:24] Todd Farmer

    A solução ("solução", na verdade) para isso é alterar a senha do usuário afetado para um hash pós-4.1. Esta é realmente uma prática recomendada, independentemente - o processo de hash e autorização de senha antes de 4.1 tem limitações de segurança notáveis ​​(discutidas na documentação em http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html ).

    Restaurar uma versão 5.0 do mysqlesquema em um servidor 5.6 é uma má ideia de qualquer forma, porque 5.6 tem colunas adicionais em algumas tabelas e algumas tabelas completamente novas, que podem ou não estar faltando agora dependendo de como você configurou o mysqldump quando você criou o arquivo de despejo. Você pode ter causado outros problemas que você pode não ver imediatamente.

    Além disso, não vi skip-grant-tablesmencionado no artigo ... mas se você aplicar corretamente essa opção ao servidor, toda a autenticação será ignorada e você poderá fazer login e redefinir senhas.

    • 6
  3. Franck Dernoncourt
    2014-10-15T17:38:31+08:002014-10-15T17:38:31+08:00

    Se você usa o MySQL Workbench, você precisa marcar esta opção:

    insira a descrição da imagem aqui

    • 6
  4. offby1
    2013-11-08T16:33:26+08:002013-11-08T16:33:26+08:00

    Isso é realmente um comentário sobre a resposta anterior, mas é muito grande para caber em um comentário do StackExchange.

    Eu também estava sofrendo com esse problema. Então, criei um novo usuário com um hash de novo estilo e agora uso esse novo usuário sem problemas. Aqui está o que eu fiz:

        [172.16.2.222:mysql Thu Nov  7 16:16:25 2013]> use mysql;
        Database changed
        [172.16.2.222:mysql Thu Nov  7 16:22:23 2013]> describe user;
        describe user;
        +-----------------------+-----------------------------------+------+-----+---------+-------+
        | Field                 | Type                              | Null | Key | Default | Extra |
        +-----------------------+-----------------------------------+------+-----+---------+-------+
        | Host                  | char(60)                          | NO   | PRI |         |       |
        | User                  | char(16)                          | NO   | PRI |         |       |
        | Password              | char(41)                          | NO   |     |         |       |
    

    Fiquei feliz em ver que nossa coluna Senha já era grande o suficiente para conter hashes de novo estilo. (Se tivesse menos de 41 caracteres, talvez eu não tivesse coragem de ampliá-lo :-)

        [172.16.2.222:mysql Thu Nov  7 16:13:10 2013]> show variables like '%pass%';
        +-----------------+-------+
        | Variable_name   | Value |
        +-----------------+-------+
        | old_passwords   | ON    |
        | report_password |       |
        +-----------------+-------+
        2 rows in set (0.06 sec)
    

    old_passwordsser ONé claramente o problema, então mudei temporariamente:

        [172.16.2.222:mysql Thu Nov  7 16:13:59 2013]> set session old_passwords = 'OFF';
        Query OK, 0 rows affected (0.05 sec)
    
        [172.16.2.222:mysql Thu Nov  7 16:14:12 2013]> show variables like '%pass%';
        show variables like '%pass%';
        +-----------------+-------+
        | Variable_name   | Value |
        +-----------------+-------+
        | old_passwords   | OFF   |
        | report_password |       |
        +-----------------+-------+
        2 rows in set (0.06 sec)
    

    Então criei um novo usuário:

        [172.16.2.222:mysql Thu Nov  7 16:14:16 2013]> create user 'erich' IDENTIFIED BY 'SEKRIT PASSWORD';
    

    ... e deu uma olhada no novo hash:

        [172.16.2.222:mysql Thu Nov  7 16:14:26 2013]> select * from user order by User;
        +-----------+--------------+-------------------------------------------+--------
        | Host      | User         | Password                                  | Select_
        +-----------+--------------+-------------------------------------------+--------
        | localhost | someguy      | 3d9505dd323e53f1                          | Y      
        | %         | someotherguy | 79b3df3b004bb855                          | Y      
        | %         | erich        | *D2589EF6B59146801234567897BB190123456789 | N      
        | %         | anotheroldguy| 60577e0d77b9212b                          | Y      
    

    Observe como meu hash é maior que os outros!

    Só para ficar arrumado, old_passwordsvoltei para OFF. Isso provavelmente foi inútil, já que não consigo imaginar por que alguém iria querer criar novos usuários usando senhas antigas, mas quem sabe.

    De qualquer forma: isso resolveu para mim.

    • 1

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

    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

    Conceder acesso a todas as tabelas para um usuário

    • 5 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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