에러 해결
문제
JDBC 연동 중에 모든 코드에 이상이 없을 확인하고 실행을 돌렸다.
하지만 보여지는 것은 내가 원하던 결과가 아니라 다음과 같은 에러 메시지였다.
java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=주소)(port=3306)(type=master) : Socket fail to connect to host:주소, port:3306. Connection refused: connect
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:192)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1392)
at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:635)
at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:150)
at org.mariadb.jdbc.Driver.connect(Driver.java:89)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at kr.or.connect.jdbcexam.dao.RoleDao.getRole(RoleDao.java:19)
at kr.or.connect.jdbcexam.JDBCExam1.main(JDBCExam1.java:9)
Caused by: java.sql.SQLNonTransientConnectionException: Socket fail to connect to host:주소, port:3306. Connection refused: connect
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73)
at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:183)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createSocket(AbstractConnectProtocol.java:255)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:519)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1387)
... 7 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
at java.net.Socket.connect(Socket.java:606)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createSocket(AbstractConnectProtocol.java:250)
... 9 more
aws ec2 에서 3306 포트도 열어주고 방화벽도 꺼주고 stack overvlow에서 mysql 서비스 재시작 하라는 것도 다 해보아도 해결이 되지 않았다.
진짜 몇 시간을 여기에만 쏟다가 도저히 안되는거 같아서 친한 형한테 자문을 구했다.
그 형이 데이터 베이스에서 외부 접속을 막는거 아니냐? 라는 질문을 던졌을 때 무슨 말인지 이해를 못했다.
검색을 해보니 mariaDB 초기 설정에서 수정이 가능함을 알게 되었다.
server 파일의 bind-address를 수정하라는 글이었다.
해결방법
구체적으로 말하면 /etc/mysql/mariadb.conf.d/의 경로에 있는 50-server.cnf 파일 내용 bind-address를 127.0.0.1 에서 0.0.0.0으로 수정 하는 것이다.
이를 수정하고 서비스를 재시작 service mysql restart
을 해주니 문제가 깔끔하게 해결되었다.
진짜 아깝지 않은? 시간이었다.
'기타' 카테고리의 다른 글
Android 공부할 내용들 (Todo list) (0) | 2022.11.28 |
---|---|
Greedy Algorithm (0) | 2021.01.27 |
Dynamic Programming (0) | 2021.01.27 |
github.io 블로그 댓글 및 게시글 에러 (0) | 2021.01.23 |
github.io 블로그 만들기(3) - comment 기능 추가하기 (0) | 2021.01.15 |
최근댓글