MySQL 연결 문제: 'root'@'localhost' 사용자에 대한 액세스가 거부되었습니다.
제공한 코드가 데이터베이스에 연결하지 못합니다. "사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다(비밀번호 사용: YES)"라는 메시지와 함께 SQLException이 발생합니다. 이 문제는 지정된 사용자에게 데이터베이스에 액세스하는 데 필요한 권한이 없음을 나타냅니다.
원인:
이 예외는 다음과 같은 이유로 발생할 수 있습니다.
해결책:
이 문제를 해결하려면 다음 단계를 수행하세요.
필요한 권한 부여: 다음 SQL 문을 실행하여 'localhost'의 '루트' 사용자에게 모든 권한을 부여합니다.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
%password%를 '루트' 사용자의 실제 비밀번호로 바꾸세요.
예:
수정하셨습니다. 예외를 처리하는 동안 코드에서 데이터베이스 생성을 약간 시도합니다.
<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException { try { Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); Statement s = (Statement) conn.createStatement(); int result = s.executeUpdate("CREATE DATABASE databasename"); } catch (Exception e) { e.printStackTrace(); } }</code>
그러나 동일한 예외가 발생합니다. 이 경우 '루트' 사용자에게 데이터베이스를 생성하는 데 필요한 권한이 있는지 확인하십시오. 다음 SQL 문을 사용하여 이 권한을 부여할 수 있습니다.
GRANT CREATE DATABASE ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
이 단계를 수행하면 데이터베이스에 대한 연결을 성공적으로 설정하고 "액세스 거부" 예외를 방지할 수 있습니다.
위 내용은 MySQL 데이터베이스에 연결하려고 할 때 \'사용자 \'root\'@\'localhost\'\'에 대한 액세스가 거부되었습니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!