PHP 경고: mysql_query(): 사용자 솔루션에 대한 액세스가 거부되었습니다.
PHP를 사용하여 MySQL 데이터베이스에 연결할 때 때때로 다음 오류 메시지가 표시됩니다.
PHP 경고: mysql_query(): 사용자 'xxx'@에 대한 액세스가 거부되었습니다. 'localhost' (비밀번호 사용: YES)
PHP가 MySQL 데이터베이스에 연결하기 위해 사용하는 사용자 이름이나 비밀번호가 올바르지 않기 때문입니다. 이 기사에서는 이 문제를 해결하는 방법을 설명합니다.
해결 방법
1. MySQL 사용자 이름과 비밀번호가 올바른지 확인하세요
먼저 사용하는 MySQL 사용자 이름과 비밀번호가 올바른지 확인하세요. MySQL 명령줄을 사용하여 사용자 이름과 비밀번호가 올바른지 확인할 수 있습니다.
$ mysql -u your_username -p
예를 들어 사용자 이름이 "root"인 경우 다음 명령을 입력하세요.
$ mysql - u root -p
다음으로 비밀번호를 입력하라는 메시지가 표시됩니다. 비밀번호를 입력한 후 MySQL 서버에 성공적으로 로그인했다면 사용자 이름과 비밀번호가 올바른 것입니다. 그렇지 않은 경우 사용자 이름과 비밀번호를 올바르게 입력했는지 확인하세요.
2. MySQL 액세스 권한 확인
사용자 이름과 비밀번호가 정확하지만 여전히 액세스 거부 오류가 발생하는 경우 MySQL 서버가 올바른 권한으로 구성되지 않았기 때문일 수 있습니다. MySQL에서는 충분한 권한이 있는 사용자만 특정 데이터베이스와 테이블에 액세스할 수 있습니다.
다음 명령을 사용하여 MySQL 사용자의 액세스 권한을 확인할 수 있습니다.
$ SHOW GRANTS FOR user@localhost;
여기서 user@localhost는 확인하려는 MySQL 사용자와 연결하려는 호스트를 식별합니다. 예를 들어 사용자 이름이 "root"인 경우 다음 명령을 입력합니다.
$ SHOW GRANTS FOR root@localhost
MySQL 사용자에게 특정 데이터베이스나 테이블에 액세스할 수 있는 권한이 없는 경우 이 사용자에 대한 권한 부여를 위한 다음 명령:
$ GRANT ALL PRIVILEGES ON Database_name.* TO 'user_name'@'localhost' IDENTIFIED BY 'password'; 권한을 부여할 MySQL 사용자 이름, 비밀번호는 사용자의 비밀번호를 지정합니다. 예를 들어, 루트 사용자에게 mydb 데이터베이스에 액세스할 수 있는 권한을 부여하려면 다음 명령을 입력하십시오:
$ GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'localhost' IDENTIFIED BY 'your_password'; 인증이 완료되면 MySQL에 다시 연결하고 PHP 스크립트를 실행해야 합니다.
3. MySQL 로그 보기
마지막으로 위 해결 방법을 시도해도 문제가 해결되지 않으면 MySQL의 오류 로그 파일을 확인하는 것이 좋습니다. 로그 파일은 일반적으로 MySQL 서버의 /var/log 디렉터리에 있습니다(또는 Windows에서는 C:/ProgramData/MySQL/MySQL Server X.X/ 또는 C:/Program Files/MySQL/MySQL Server X.X/일 수 있음). .
오류 로그 파일을 열고 그 안에 있는 오류 메시지를 조사하여 문제의 근본 원인을 파악하는 데 도움이 되는 더 자세한 정보를 찾아보세요.
결론
이 기사에서는 PHP 경고: mysql_query(): 사용자 'xxx'@'localhost'에 대한 액세스가 거부되었습니다. 오류를 해결하는 방법을 소개했습니다. 데이터베이스 액세스가 여전히 제한되어 있는 경우 문제에 대한 자세한 정보를 보려면 항상 로그 파일을 확인하십시오.
위 내용은 PHP 경고에 대한 솔루션: mysql_query(): 사용자에 대한 액세스가 거부되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!