itsource

mariadb 사용자에게 권한을 부여하려고 할 때 테이블 오류에서 일치하는 행을 찾을 수 없습니다.

mycopycode 2022. 9. 29. 00:18
반응형

mariadb 사용자에게 권한을 부여하려고 할 때 테이블 오류에서 일치하는 행을 찾을 수 없습니다.

이건 쉬울 것 같은데...mysql 핸드북에서 이 명령어를 꺼내 권한과 사용자를 약간 변경했습니다.사용자에게 권한을 추가하려고 하는데 명령줄에 오류가 나타납니다.전송하려는 명령어는 다음과 같습니다.

GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient';

다음은 오류입니다.

ERROR 1133 (28000): Can't find any matching row in the user table

테이블과 사용자가 이미 존재합니다.다음은 mysql 핸드북의 일부입니다.
https://dev.mysql.com/doc/refman/8.0/en/adding-users.html

내가 여기서 뭘 잘못하고 있는 거지?

(Ubuntu 서버 18.04 위의 MariaDB 버전 10.1.34)

매뉴얼에서

사용자로서 MySQL 서버에 접속할 때, 접속원호스트와 지정한 유저명에 의해서 ID 가 결정됩니다.

따라서 MySQL 권한은 지정된 사용자에게 부여되지 않고 특정 호스트에서 연결하는 사용자에게 부여됩니다.이렇게 하면 이름 있는 사용자는 연결 위치에 따라 다른 권한을 가질 수 있습니다.

권한을 부여할 때 일반적으로 두 가지 모두user그리고.host사용자 및 호스트의 올바른 조합에 일치시킬 수 있도록 합니다.여기서와 같이 호스트 부분을 생략하면 MySQL은 호스트가 와일드카드 '%'(어디서든)로 간주합니다.따라서 명령어는 다음과 같이 처리됩니다.

GRANT SELECT,INSERT,UPDATE,DELETE ON mytable.* TO 'myclient'@'%';

그리고 당신이 인용한 오류 메시지는 mysql.user 테이블에 레코드가 없음을 의미합니다.user= 'myclient' 및host= '%'.

언급URL : https://stackoverflow.com/questions/51914015/cant-find-matching-rows-in-table-error-when-trying-to-grant-privileges-to-maria

반응형