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 / 81092
Accepted
x-yuri
x-yuri
Asked: 2014-10-17 22:05:32 +0800 CST2014-10-17 22:05:32 +0800 CST 2014-10-17 22:05:32 +0800 CST

O que significa "como anônimo em" no log geral do mysql?

  • 772

No mysqllog geral do 's, vejo coisas como:

141017  8:57:31     4 Connect   root@localhost as anonymous on

O que significa essa coisa de "como anônimo em"? Eu entro como root@localhost. Ainda sou anônimo, ou mesmo "anônimo em"?

UPD

$ systemctl stop mysqld
$ rm -f /var/lib/mysql/yuri.log
// enable general log in /etc/mysql/my.cnf
$ systemctl start mysqld
$ mysql -u root -p -BNe 'SELECT USER() HowYouAttemptedToLogin, CURRENT_USER() HowMySQLAllowedYouToLogin;'
Enter password:
root@localhost  root@localhost
$ mysql -u root -p -BNe 'SELECT host, user FROM mysql.user;'
Enter password: 
127.0.0.1   root
::1 root
localhost   hostname
localhost   root
$ cat /var/lib/mysql/yuri.log
/usr/bin/mysqld, Version: 10.0.14-MariaDB-log (MariaDB Server). started with:
Tcp port: 3306  Unix socket: /run/mysqld/mysqld.sock
Time                 Id Command    Argument
141204 19:03:19     3 Connect   UNKNOWN_USER@localhost as anonymous on 
            3 Connect   Access denied for user 'UNKNOWN_USER'@'localhost' (using password: NO)
141204 19:04:55     4 Connect   root@localhost as anonymous on 
            4 Query select @@version_comment limit 1
            4 Query SELECT USER() HowYouAttemptedToLogin, CURRENT_USER() HowMySQLAllowedYouToLogin
            4 Quit  
141204 19:05:47     5 Connect   root@localhost as anonymous on 
            5 Query select @@version_comment limit 1
            5 Query SELECT host, user FROM mysql.user
            5 Quit  
mysql log
  • 1 1 respostas
  • 8060 Views

1 respostas

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2014-12-05T10:22:04+08:002014-12-05T10:22:04+08:00

    Depois de algumas pesquisas no Google da liga principal em todo o planeta, acho que encontrei a resposta.

    • http://dbaspot.com/mysql/70551-how-disable-any-logging-mysql.html
    • https://lists.drupal.org/pipermail/support/2014-June/025447.html

    A partir dessas postagens, vi algo interessante

    • 13679547 Connect @localhost as anonymous on test
    • 140612 12:33:07 3 Connect gk_admin at localhost as anonymous on dTEST_db

    Minha conjectura é a seguinte: O que se segue as anonymous oné o banco de dados atualmente conectado

    mysql -u root -Dmysql -p -BNe 'SELECT USER(),CURRENT_USER()'
    

    A entrada de log geral deve dizeras anonymous on mysql

    mysql -u root -Dtest -p -BNe 'SELECT USER(),CURRENT_USER()'
    

    A entrada de log geral deve dizeras anonymous on test

    mysql -u root -p -BNe 'SELECT USER(),CURRENT_USER()'
    

    A entrada de log geral deve dizeras anonymous on

    De uma chance !!!

    ATUALIZAÇÃO 2014-12-04 14:26 EST

    Você está pronto para isso? Eu tenho um post antigo onde alguém tem o código-fonte comas anonymous on

    log_warnings não parece funcionar para conexões abortadas no MySQL 5.1

    No código do meu post de 2 anos, as anonymous onestá codificado !!!

    Olhe o código novamente

    [29 Sep 2008 8:03] Konstantin Osipov
    OK, it was fixed differently:
          /*
            Log the command before authentication checks, so that the user can
            check the log for the tried login tried and also to detect
            break-in attempts.
          */
          general_log_print(thd, command,
                            (thd->main_security_ctx.priv_user ==
                             thd->main_security_ctx.user ?
                             (char*) "%s@%s on %s" :
                             (char*) "%s@%s as anonymous on %s"),
                            thd->main_security_ctx.user,
                            thd->main_security_ctx.host_or_ip,
                            db ? db : (char*) "");
    
    So, this is logged in the general log at least.
    
    I was reviewing a patch that added more logging,
    but I can't remember the worklog task number.
    

    Observe a parte do código que faz referência ao banco de dados db ? db : (char*) "");. A dbvariável (o banco de dados atual) aponta para um nome de banco de dados ou uma string vazia.

    A parte estranha de responder a essa pergunta é que esta é a segunda vez que tive que me referir a um post que eu mesmo escrevi anos atrás. A primeira vez foi esta: o MySQL ainda lida com índices dessa maneira?

    ATUALIZAÇÃO 17/12/2014 16:45 EST

    Com base no seu último comentário

    Mas qual é exatamente a sua resposta? Que não importa o que significa "como anônimo"? Caso contrário, ainda temos que descobrir por que thd->main_security_ctx.user é falso.

    Na sua pergunta, você perguntou What is this "as anonymous on" thing even means?A resposta que eu disse foi Either the db variable (the current database) points to a database name or an empty string. Quanto a thd->main_security_ctx.user, thd->main_security_ctx.host_or_ip, isso seria root@localhost. O que vem depois as anonymousé o DB atual. Isso não é nada para descobrir.

    Você então perguntou Am I still anonymous, or even "anonymous on"?. A resposta seria sim porque você foi autenticado como usuário de uma conexão de banco de dados e sua conexão se torna um thread ativo como qualquer outro thread.

    Qualquer conexão

    • Conexão de banco de dados de um usuário autenticado
    • usuário do sistema (conexão interna do banco de dados para replicação)
    • Agendador de Eventos (Conexão DB para Processamento de Eventos)

    são todos fios iguais. O log geral não diferencia uma conexão de banco de dados de outra. O código verifica todas as conexões da mesma forma, independentemente de as conexões serem internas ou externas.

    Se a minha resposta ainda não responder à sua pergunta, há realmente uma coisa que você pode fazer: Vá para os Fóruns do MySQL e poste esta pergunta para os desenvolvedores. Como Konstantin Osipovera o desenvolvedor que estava respondendo a Lista de Bugs e se refere a este código fonte (bugs.mysql.com/bug.php?id=24761) que usa a expressão as anonymous onno general_log_print function, ele teria que saber o contexto correto e o motivo da usando a expressão as anonymous on.

    ATUALIZAÇÃO 2018-08-12 19:46 EDT

    À luz da sua conjectura, pesquisei no Google e encontrei uma amostra de saída de um log geral :

    131021 17:43:50    43 Connect root@localhost as anonymous on pnet_blog
           43 Init DB pnet_blog
           43 Query SELECT count(id) as total_posts FROM posts WHERE date_published is not null AND date_published <= '20131021144350'
           43 Query SELECT * FROM posts WHERE date_published is not null AND date_published <= '20131021144350' ORDER BY date_published DESC LIMIT 0,10
           44 Connect root@localhost as anonymous on pnet_blog
           44 Query SELECT id, title, impressions FROM tips WHERE date_published IS NOT NULL AND date_published <= '20131021144350' ORDER BY date_published DESC LIMIT 0, 10
           44 Quit
           43 Quit
    131021 17:44:28    45 Connect root@localhost as anonymous on pnet_blog
           45 Init DB pnet_blog
           45 Query SELECT * FROM posts WHERE url='how-and-when-to-enable-mysql-logs'
           45 Query UPDATE posts SET impressions=impressions+1 WHERE id='41'
           45 Query SELECT url, post_title FROM posts WHERE date_published IS NOT NULL AND date_published < '20131020150000' ORDER BY date_published DESC LIMIT 0,1
           45 Query SELECT url, post_title FROM posts WHERE date_published IS NOT NULL AND date_published > '20131020150000' ORDER BY date_published ASC LIMIT 0,1
           45 Query SELECT * FROM posts WHERE date_published is not null AND date_published <= '20131021144428' AND date_published >= '20130421144428' ORDER BY impressions DESC LIMIT 0,10
           46 Connect root@localhost as anonymous on pnet_blog
           46 Query SELECT id, title, impressions FROM tips WHERE date_published IS NOT NULL AND date_published <= '20131021144428' ORDER BY date_published DESC LIMIT 0, 10
           46 Quit
           45 Quit
    

    Observe as duas entradas de carimbo de data/hora do log de amostra:

    131021 17:43:50    43 Connect root@localhost as anonymous on pnet_blog
    131021 17:44:28    45 Connect root@localhost as anonymous on pnet_blog
    

    bem como a entrada de log original da sua pergunta:

    141017  8:57:31     4 Connect   root@localhost as anonymous on
    

    Nesses momentos, o usuário não é autenticado, embora root@localhostapareça. O comentário para o código suporta sua conjectura . Agora você tem a resposta diretamente do autor do código-fonte.

    Obrigado por aceitar minha resposta postada (que leva você a encontrar a resposta real)

    • 4

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