본문 바로가기
Database/MYSQL

[MYSQL] Table 'DB이름.user' doesn't exist 오류해결방법 (user테이블은 mysql db에서 관리한다)

by hyen_ 2022. 5. 25.
300x250

user테이블은 mysql db에서 관리한다

 

mysql이 익숙하신 분들에게는 너무나 기초적인 사항이지만 mysql 초보자는 이 문제 때문에 허우적...

 

'관리자권한을 부여받은 유저들 목록을 볼 수 있는 user 테이블은 도대체 어디서 관리하는가' 를 무척 궁금했던 저는 이제야 이런 깨달음을 알게되어 이 과정을 기록해봅니다.

 

 

 

문제발생

 

 

특정 테이블의 user를 검색하려는데 이렇게 에러가 떠서

 

도대체 내가 adduser 한 유저들과 grant로 권한 부여한 유저들은 어디서 확인할 수 있는지 궁금했습니다.

 

 

 

 

해결과정

 

전체 database를 확인해보았습니다.

show databases;

 

 

 

 

database들 중,  'schooldata_lg'라는 이름을 가진 데이터베이스를 접근을 합니다.

use schooldata_lg;

 

 

user라는 테이블은 mysql에서만 존재한다

 

이 사실을 알게되고 다시한번 체크해보았습니다.

 

 

 

 

mysql라는 이름의 데이터베이스로 접근합니다.

use mysql;

 

 

 

user테이블의 user, host를 검색합니다. password까지 체크하려면 아래와 같은 명령어로 체크해봅니다.

select user,host,password from user;

 

user테이블에 지금까지 추가된 user, host, password 정보가 작성되어있음을 보실 수 있습니다.

 

 

 

 

 

 

 

 

특정 아이디에 권한 부여하기

 

지금은 use mysql; 해놓은 상태라서  mysql 이라는 데이터베이스 안에 접근되어있는 상태입니다.

 

저는 hj 라는 아이디가 user테이블의 host부분에 추가되어있음을 확인하였습니다.

hj라는 아이디가 schooldata_lg 테이블에 권한을 주고 변경된 권한을 적용합니다.

grant all privileges on schooldata_lg.* to 'hj'@'%';
flush privileges;

 

 

 

hj라는 아이디가 어느테이블에 어떻게 권한이 부여되었는지 확인합니다.

show grants for 'hj';

 

그러면 hj가 어느테이블에 어떻게 권한이 부여되어있는지 보입니다.

 

 

 

hj라는 아이디가 schooldata_lg 테이블에 모든 권한이 부여되었다고 확인이 되었습니다. 

 

 

 기초는 철저히....ㅠ.ㅠ

 

 

 

300x250
반응형

댓글