phpmyadmin이 스키마를 표시하지 않습니다

phpmyadmin이 스키마를 표시하지 않습니다

나는 많은 수의 mysql 데이터베이스를 가진 서버를 가지고 있습니다. 최근 루트로 로그인하면 일부 스키마 표시가 중단되었습니다.

루트 사용자 - 지금까지 항상 사용됨

해당 특정 데이터베이스에 대한 로그인을 사용하면 이를 볼 수 있습니다.

직접 사용자

이 데이터베이스의 '소유자'는 루트이지만 루트에 표시되지 않는 다른 데이터베이스도 다른 사람이 소유하고 있습니다.

최근에 우리가 액세스하고 작업한 데이터베이스가 사라진 것 같지만 현재 표시되지 않는 데이터베이스가 5개 이상 있습니다. 로컬 캐시가 아니며 루트 로그인을 사용하는 사람도 동일한 문제가 있습니다.

답변1

만약 당신의현재 사용자()라고 말하지 않으면 root@localhost루트 권한이 없으며 루트 권한으로 연결할 수 없습니다.

연결된 후 실제 권한이 무엇인지 확인하려면 다음을 실행하세요.

SHOW GRANTS;

특정 데이터베이스에 연결하면 다음을 볼 수 있습니다.

  • 해당 데이터베이스의 테이블
  • 해당 데이터베이스에 대한 INFORMATION_SCHEMA의 메타데이터

예를 들어 buyspace_systdb에 연결했다고 가정해 보겠습니다.

의 출력SHOW GRANTS;아마도 이런 식으로 나타날 것입니다

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

root@localhost해당 로컬 서버 내에서 로그인하면 사용자가 작동합니다. 원격으로 로그인하는 경우 root@localhost허용되지 않습니다.사용자()다음으로 인증하다현재 사용자(). 이에 대한 증거는 귀하의 질문에 대한 첫 번째 화면에 있습니다. information_schema만 볼 수 있습니다. 1개 또는 2개의 항목이 있는 information_schema.schemata를 제외하고는 사실상 비어 있습니다. root@'%'에 존재 mysql.user하고 와 동일한 권한을 갖고 있다면 과 root@localhost같은 모든 것을 볼 수 있습니다 root@localhost.

MySQL에는 하향 나선형 효과가 있는 인증 체계가 있습니다. 연결하려는 사용자가 존재하지 않으면 더 모호한 사용자 이름을 시도합니다(와일드카드 또는 제한된 권한 허용). 내 DBA StackExchange 게시물 보기MySQL 오류: 'a'@'localhost' 사용자에 대한 액세스가 거부되었습니다(비밀번호 사용: YES). 이에 대한 자세한 내용은

결론root@localhost: 원격지에서는 접속이 불가능합니다.

관련 정보