-
[MySQL/MariaDB] 1045 28000 Access denied for user 'xxx@192.168.1.xxx' (using password: YES)DB 2022. 9. 5. 16:37반응형
1. 상황 : 접속정보를 받아서 접속하려고 했더니 이렇게 떴다.
- 방화벽 : telnet을 해보니 잘 연결되었다.
- 외부서버라서 내가 어떻게 할수 없다. 단지 제공받은 정보가지고 로그인 시도만 가능하다.
2. 나의 생각
- ID/PW 가 잘못되었을까? -> 검색을 해보았더니 ID/PW가 틀려도 저렇게 나온다고 했다.
- Connector 버전이 잘못되었나?(JDBC) -> JDBC 버전에 따른 Connection String이나 연결 방식이 다르다고 한다.
- Conncetion String에 문제가 있나? - 버전에 따른 차이가 있나?
3. 연결 시도
처음으로 버전에 따른 Connection String을 달리 시도해보기 시작했다. 기존 사용하던 JDBC Connection String이
jdbc:mariadb://{host_ip}:{port}/{database}
이거였는데, 이렇게 바꿔보았다.
jdbc:mariadb://{host_ip}:{port}/{database}?user={user_id}&password={user_pw}
그래도 실패. 똑같은 메세지가 떨어졌다.
그다음 최신 커넥터를 다운받아 사용해 보기로 한다.
https://www.mysql.com/products/connector/
<MySQL JDBC>
https://mariadb.com/kb/en/about-mariadb-connector-j/
<MariaDB JDBC>
실패. 심지어 파이썬으로 돌리는 거였는데, 라이브러리를 잘 찾지도 못했다.
결국 서버에서 mysql 명령어를 사용해 직접 접속해 보기로 한다.
mysql -h192.168.1.100 -uloginid -ploginpw -P3306
사실 저 IP는 아니지만 적어놨음. 그래도 똑같은 에러. 비밀번호를 치지않으면 똑같지만 마지막 Yes 부분만 NO로 바뀌는 마법같은 일도 일어났다.
4. 해결
의외로 간단히 해결되었는데, 서버 측에 문의했다. 접속이 안되니 비밀번호나 계정을 확인해달라고 했다. 그러자 MariaDB는 ID/패스워드가 맞으면 어디서나 접근 가능한게 아니라, 계정마다 접속 가능한 IP대역을 설정 가능하다고 한다. 그 IP대역에 포함이 되어 있지 않아 접속이 되지 않고 있었던 것이다.5. 결론
MariaDB나 MySQL을 사용할때는 계정별로 외부 접속이 가능하게 설정되어 있는지를 확인하자.반응형'DB' 카테고리의 다른 글
[ElasticSearch] 기초적인 ElasticSearch 자문자답 (0) 2019.07.10 [Logstash] Elasticsearch 데이터 추출 및 저장 (0) 2018.10.26 17/05/13 DB처음 시작해보기 (0) 2017.05.13 [DB이론] 2. 관계 기수성 ~ 정규화 (0) 2016.08.25 [DB이론] 1. 모델링 정의 ~ 관계 (0) 2016.08.25