source

Mariadb 연결 클라이언트:mysql 8.0에서 사용자(암호: NO 사용)에 대한 액세스가 거부되었습니다.

goodcode 2022. 9. 8. 21:52
반응형

Mariadb 연결 클라이언트:mysql 8.0에서 사용자(암호: NO 사용)에 대한 액세스가 거부되었습니다.

mariadb-java-client는 mysql 8.0에서는 액세스가 거부되지만 mysql 5.6에서는 동작하기 때문에 mariadb 클라이언트가 mysql 8.0과 호환성이 있는지 궁금합니다.

  1. mysql에서 테스트 사용자는 호스트 시스템 = %로 제한됩니다.

  2. mysql 8.0 머신에서 테스트된 경우에도 동일한 액세스 거부 오류가 발생하였습니다.


Caused by: java.sql.SQLException: Access denied for user 'user1'@'192.168.238.1' (using password: NO)
Current charset is UTF-8. If password has been set using other charset, consider using option 'passwordCharacterEncoding'

    Connection connection = DriverManager.getConnection("jdbc:mariadb://192.168.0.2:3306/test", "user1", "admin@123");
    Statement stmt = connection.createStatement();
    stmt.executeUpdate("CREATE TABLE a (id int not null primary key, value varchar(20))");
    stmt.executeUpdate("DROP TABLE a");
    stmt.close();
    connection.close();

mysql 5.6 및 8.0에서 동일한 사용자 이름과 비밀번호

  1. 성공: 'mariadb-java-client', 버전: '2.3.0', mysql 5.6

  2. 실패: 'mariadb-java-client', 버전: '2.3.0', mysql 8.0

  3. 성공: 'mysql-connector-java', 버전: '8.0.13' mysql 8.0 (jdbc:mysql://....)

MySQL 8은 MySQL 5.7(및 MariaDB)에서 mysql_native_password 대신 caching_sha2_password를 사용합니다.

"caching_sha2_password는 MySQL 8.0에서 권장되는 인증 플러그인이며 mysql_native_password가 아닌 기본 인증 플러그인입니다.이 변경은 서버와 libmysqlclient 클라이언트라이브러리 양쪽에 영향을 줍니다.

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

MariaDB의 Java Connector는 아직 이를 구현하지 않았지만 다음과 같은 작업이 할당되어 있습니다.

https://jira.mariadb.org/browse/CONJ-663

MySQL 8에 연결하려면 Oracle 커넥터 또는 변경을 지원하는 다른 커넥터를 사용하거나 MariaDB가 구현될 때까지 기다려야 합니다.

언급URL : https://stackoverflow.com/questions/54188309/mariadb-connection-client-access-denied-for-user-using-password-no-on-mysql

반응형