>  기사  >  Java  >  MySQL 데이터베이스에 연결하려고 할 때 \"사용자 \'root\'@\'localhost\'\"에 대한 액세스가 거부되었습니다." 오류가 발생하는 이유는 무엇입니까?

MySQL 데이터베이스에 연결하려고 할 때 \"사용자 \'root\'@\'localhost\'\"에 대한 액세스가 거부되었습니다." 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 00:27:28962검색

Why am I getting

MySQL 연결 문제: 'root'@'localhost' 사용자에 대한 액세스가 거부되었습니다.

제공한 코드가 데이터베이스에 연결하지 못합니다. "사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다(비밀번호 사용: YES)"라는 메시지와 함께 SQLException이 발생합니다. 이 문제는 지정된 사용자에게 데이터베이스에 액세스하는 데 필요한 권한이 없음을 나타냅니다.

원인:

이 예외는 다음과 같은 이유로 발생할 수 있습니다.

  • 잘못된 사용자 이름 또는 비밀번호
  • 사용자에 대한 권한 부족
  • 방화벽이 데이터베이스 서버에 대한 액세스를 차단

해결책:

이 문제를 해결하려면 다음 단계를 수행하세요.

  1. 사용자 이름과 비밀번호를 확인하세요. DriverManager.getConnection에 제공된 사용자 이름과 비밀번호를 확인하세요. ()가 맞습니다.
  2. 필요한 권한 부여: 다음 SQL 문을 실행하여 'localhost'의 '루트' 사용자에게 모든 권한을 부여합니다.

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;

    %password%를 '루트' 사용자의 실제 비밀번호로 바꾸세요.

  3. 방화벽 설정: 시스템의 방화벽이 데이터베이스 서버에 대한 액세스를 차단하고 있는지 확인하세요. . 그렇다면 데이터베이스 서버가 사용하는 포트(일반적으로 포트 3306)에서 연결을 허용하도록 방화벽을 구성하십시오.

예:

수정하셨습니다. 예외를 처리하는 동안 코드에서 데이터베이스 생성을 약간 시도합니다.

<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException {
    try {
        Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&amp;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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.