phpmyadmin não exibindo esquema

phpmyadmin não exibindo esquema

Eu tenho um servidor com um grande número de bancos de dados MySQL. Recentemente, alguns dos esquemas pararam de ser exibidos quando conectado como Root.

usuário root - até agora sempre usado

Se eu usar o login para esse banco de dados específico, poderei vê-lo.

usuário direto

O 'proprietário' deste banco de dados é root, mas outros que também não são visíveis para root são de propriedade de terceiros.

Parece que bancos de dados que acessamos e nos quais trabalhamos recentemente desapareceram, mas agora há mais de 5 que não estão visíveis. Não é um cache local e qualquer pessoa que também use o login root tem o mesmo problema.

Responder1

Se seuUSUÁRIO ATUAL()não diz root@localhost, então você não tem privilégios de root e não tem permissão para se conectar como tal.

Para ver quais privilégios reais você tem após se conectar, execute este

SHOW GRANTS;

Ao se conectar a um banco de dados específico, você poderá ver

  • as tabelas desse banco de dados
  • metadados no INFORMATION_SCHEMA apenas para esse banco de dados

Digamos, por exemplo, que você se conectou ao buyspace_systdb

A saída deSHOW GRANTS;provavelmente apareceria algo assim

GRANT USAGE ON *.* ...
GRANT ALL PRIVILEGES ON buyspace_systdb.* TO ...

O usuário root@localhostfuncionaria se você fizesse login nesse servidor local. Se você estiver fazendo login remotamente, root@localhostnão permitiriaDO UTILIZADOR()autenticar comoUSUÁRIO ATUAL(). A prova disso está na primeira exibição da sua pergunta. Observe que você só pode ver information_schema. Ele ficará virtualmente vazio, com exceção de information_schema.schemata que teria 1 ou 2 entradas. Se root@'%'existisse mysql.usere tivesse os mesmos privilégios que root@localhost, então seria permitido ver tudo como root@localhost.

O MySQL possui um esquema de autenticação que tem um efeito espiral descendente. Se o usuário com o qual você está tentando se conectar não existir, ele tentará nomes de usuário mais vagos (permitindo caracteres curinga ou privilégios limitados). Veja minha postagem sobre DBA StackExchangeErro MySQL: Acesso negado ao usuário 'a'@'localhost' (usando senha: YES) para obter mais detalhes sobre isso.

Conclusão: Você não pode se conectar a root@localhostpartir de um local remoto

informação relacionada