No mysql
log 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
Depois de algumas pesquisas no Google da liga principal em todo o planeta, acho que encontrei a resposta.
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 conectadoA entrada de log geral deve dizer
as anonymous on mysql
A entrada de log geral deve dizer
as anonymous on test
A entrada de log geral deve dizer
as 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 com
as 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 on
está codificado !!!Olhe o código novamente
Observe a parte do código que faz referência ao banco de dados
db ? db : (char*) "");
. Adb
variá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
Na sua pergunta, você perguntou
What is this "as anonymous on" thing even means?
A resposta que eu disse foiEither the db variable (the current database) points to a database name or an empty string
. Quanto athd->main_security_ctx.user, thd->main_security_ctx.host_or_ip
, isso seriaroot@localhost
. O que vem depoisas 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
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 Osipov
era 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ãoas anonymous on
nogeneral_log_print function
, ele teria que saber o contexto correto e o motivo da usando a expressãoas 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 :
Observe as duas entradas de carimbo de data/hora do log de amostra:
bem como a entrada de log original da sua pergunta:
Nesses momentos, o usuário não é autenticado, embora
root@localhost
apareç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)