programing

Maria docker passWordCharacterEncoding 문제

subpage 2023. 7. 3. 22:53
반응형

Maria docker passWordCharacterEncoding 문제

이전 버전의 MariaDb(5.5.64)에 연결되는 앱을 사용하고 있는데 개발 기계에서 db를 들어 올려 도커 이미지로 만들고 싶습니다.

저는 이것을 했고 모든 것이 괜찮아 보입니다.

docker pull mariadb:5.5.64
docker run --name container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pword -d mariadb:5.5.64
docker exec -it container /bin/sh

내가 들어가서 엄청난 권한을 가진 사용자를 만들었습니다.

CREATE USER ‘dbusr’@‘localhost’ IDENTIFIED BY ‘pword’;
GRANT ALL PRIVILEGES ON *.* TO ‘dbusr’@‘localhost’ WITH GRANT OPTION;
CREATE USER ‘dbusr’@‘%’ IDENTIFIED BY ‘pword’;
GRANT ALL PRIVILEGES ON *.* TO ‘dbusr’@‘%’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

내 개발 기계에서 이 사용자와 암호를 사용하여 DB에 연결할 수 있습니다.모든 것이 좋아 보입니다.

응용프로그램을 사용할 때 다음과 같은 정보를 얻을 수 있습니다.

[exec] Caused by: java.sql.SQLInvalidAuthorizationSpecException: Access denied for user 'dbusr'@'172.17.0.1' (using password: YES)
 [exec]   at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:238)
 [exec]   at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:171)
 [exec]   at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1128)
 [exec]   at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:560)
 [exec]   at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:174)
 [exec]   at org.mariadb.jdbc.Driver.connect(Driver.java:92)
 [exec]   at java.sql.DriverManager.getConnection(DriverManager.java:664)
 [exec]   at java.sql.DriverManager.getConnection(DriverManager.java:208)
 [exec]   at shared.ConnectionPool.createConnectionOnServer(ConnectionPool.java:983)
 [exec]   at shared.ConnectionPool.createConnection(ConnectionPool.java:867)
 [exec]   at shared.ConnectionPool.leaseConnection(ConnectionPool.java:626)
 [exec]   at shared.ConnectionPool.leaseConnection(ConnectionPool.java:679)
 [exec]   at serverbridge.tomcat.TomcatConnectionManager.getConnection(TomcatConnectionManager.java:156)
 [exec]   at serverbridge.tomcat.TomcatConnectionManager.<init>(TomcatConnectionManager.java:71)
 [exec]   ... 13 more
 [exec] Caused by: java.sql.SQLException: Access denied for user 'dbusr'@'172.17.0.1' (using password: YES)
 [exec] Current charset is UTF-8. If password has been set using other charset, consider using option 'passwordCharacterEncoding'

저는 이것이 분명히 오류가 나타내는 것이지만 인코딩 문제가 아니라고 생각합니다.저는 그것을 가지고 놀았고 온라인으로 검색했고 비슷한 문제를 볼 수 있지만 다음에 어디로 가야 할지 잘 모르겠습니다.누가 제안을 해줄 수 있습니까?

my.conf 파일을 일치시키지 않았습니다. 다음 단계인 것 같습니다. 하지만 암호 인코딩(또는 실제로 인코딩)과는 큰 차이가 없고 아무런 관련이 없는 것 같습니다.

저는 과거에 비슷한 문제가 있었습니다.데이터베이스 사용자 테이블에 'dbuser@172.17.0.1'(또는 호스트 IP가 무엇이든 상관 없음) 사용자를 생성하는 작업이 해결되었습니다.그런 다음 'dbuser' 또는 'dbuser@localhost'에 대한 액세스 권한만 부여하지 말고 권한을 부여합니다.

언급URL : https://stackoverflow.com/questions/71593370/maria-db-docker-passwordcharacterencoding-issue

반응형