액세스 거부 오류 없이 권한 부여
권한을 부여하려고 하면 MySQL 사용자에게 "'root' 사용자에 대한 액세스가 거부되었습니다."라는 오류가 발생할 수 있습니다. @'localhost'(비밀번호 사용: YES)." 사용자에게 필요한 권한이 있는 것처럼 보일 수 있으므로 이는 혼란스러울 수 있습니다.
권한 확인
사용자에게 적절한 권한이 있는지 확인하려면 다음 명령을 실행하세요. :
SELECT user(); SELECT current_user(); SHOW GRANTS FOR 'root'@'localhost'; SELECT * FROM mysql.user WHERE User='root';
이 명령은 사용자가 실제로 root@localhost이고 필요한 권한을 가지고 있는지 확인해야 합니다. 포함:
문제: 특정 테이블에 대한 권한 부여
이러한 권한이 있음에도 불구하고 특정 테이블에 대한 권한을 부여하려고 하면 오류가 발생할 수 있습니다.
GRANT ALL PRIVILEGES ON *.* TO 'steves'@'[hostname].com' IDENTIFIED BY '[OBSCURED]' WITH GRANT OPTION;
이는 mysql.users 테이블을 제외한 모든 사용자가 접근할 수 없는 것으로 간주되기 때문입니다. root.
솔루션: 모든 데이터베이스에 권한 부여
이 문제를 해결하려면 mysql.users를 제외한 모든 데이터베이스에 권한을 부여하는 다음 명령을 사용하십시오.
GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;
.* 대신 %.를 사용하면 mysql.users 테이블을 제외한 모든 데이터베이스가 포함됩니다. 이렇게 하면 액세스 거부 오류가 발생하지 않고 권한이 성공적으로 부여됩니다.
위 내용은 필요한 권한이 있음에도 불구하고 MySQL 권한을 부여할 때 '액세스 거부' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!