* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
python 프로젝트 환경 : Ubuntu 22.04.2 LTS cubrid 환경 : 도커 컨테이너 (이미지 cubrid/cubrid:latest 사용) |
|
CUBRID 11.3 |
|
CUBRID-Python 9.3.0.1 |
|
python3.10 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
python 프로젝트 내에서 외부 서버의 docker 에 떠 있는 cubrid와의 connect가 생성되지 않습니다.
서버와 연결은 확인이 되는데, 코드
import CUBRIDdb
url = 'CUBRID:1.1.1.1:33000:testdb:::'
conn = CUBRIDdb.connect(url, 'tester', '1234')
를 실행하면 계속해서
[2024-11-05 09:52:30] INFO, 55331-140277283931712, cubrid_driver.py(304), root, connect to url : [CUBRID:1.1.1.1:33000:testdb:::]
[2024-11-05 09:52:30] ERROR, 55331-140277283931712, error.py(32), root, Error occur when trying to connect to db [1.1.1.1:33000] Traceback (most recent call last):
File "/path/to/my/file/cubrid_driver.py", line 311, in connect
self._conn = CUBRIDdb.connect(url, user=user, password=password)
File "/usr/local/lib/python3.10/dist-packages/CUBRIDdb/__init__.py", line 61, in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/CUBRIDdb/connections.py", line 22, in __init__
self.connection = _cubrid.connect(*args, **kwargs2)
_cubrid.InterfaceError: (-20002, 'ERROR: CCI, -20002, Invalid connection handle')
[2024-11-05 09:52:30] ERROR, 55331-140277283931712, datatable.py(64), root, 해당 서버의 DB 에 연결하는데 에러가 발생 했습니다 : [1.1.1.1:33000]
해당 에러가 뜹니다.'
DB는 세팅이 다 되어있는 상태이고 테이블에 값도 넣어두었습니다.
[root@e3770c377aa1 /]# cubrid javasp start testdb
@ cubrid javasp start: testdb
java_stored_procedure system parameter is not enabled
++ cubrid javasp start: fail
[root@e3770c377aa1 /]# cubrid server start testdb
@ cubrid server start: testdb
++ cubrid server 'testdb' is running.
javasp는 실행이 안 되는 것 같고, db 서버는 실행이 됩니다. csql로 접속도 잘 되구요.
DB acl도 /home/cubrid/CUBRID/conf/cubrid.conf에 yes로 설정해주었고, db_acl.access 파일도 만들어 해당 경로도 cubrid.conf에 설정해 주었습니다. 설정 후 cubrid service restart로 재기동 해준 상태인데 동일한 오류가 납니다.
에러 메세지 내용도 별 도움이 안 되어 해결을 하지 못하는 상태입니다.
뭐가 문제일까요..
[[cubrid server 내 상태입니다]]
[root@e3770c377aa1 /]# cubrid server status
@ cubrid server status
Server testdb (rel 11.3, pid 91401)
[root@e3770c377aa1 /]# ps -ef | grep cub
cubrid 295 1 0 Oct07 ? 00:00:00 /usr/bin/tail -F /dev/null
cubrid 439 0 0 Oct31 pts/0 00:00:00 bash
root 91334 0 0 00:39 pts/7 00:00:00 cub_master
root 91337 0 0 00:39 ? 00:00:02 cub_broker
root 91338 0 0 00:39 ? 00:00:00 query_editor_cub_cas_1
root 91339 0 0 00:39 ? 00:00:00 query_editor_cub_cas_2
root 91340 0 0 00:39 ? 00:00:00 query_editor_cub_cas_3
root 91341 0 0 00:39 ? 00:00:00 query_editor_cub_cas_4
root 91342 0 0 00:39 ? 00:00:00 query_editor_cub_cas_5
root 91348 0 0 00:39 ? 00:00:02 cub_broker
root 91349 0 0 00:39 ? 00:00:00 broker1_cub_cas_1
root 91350 0 0 00:39 ? 00:00:00 broker1_cub_cas_2
root 91351 0 0 00:39 ? 00:00:00 broker1_cub_cas_3
root 91352 0 0 00:39 ? 00:00:00 broker1_cub_cas_4
root 91353 0 0 00:39 ? 00:00:00 broker1_cub_cas_5
root 91362 0 0 00:39 ? 00:00:00 cub_manager start
root 91401 0 4 00:39 ? 00:01:18 cub_server testdb
root 91925 90247 0 01:10 pts/7 00:00:00 grep --color=auto cub
[root@db-server ~]# docker ps | grep cubrid
e3770c377aa1 cubrid/cubrid "/entrypoint.sh" 4 weeks ago Up 4 weeks 0.0.0.0:1523->1523/tcp, :::1523->1523/tcp, 0.0.0.0:8001->8001/tcp, :::8001->8001/tcp, 0.0.0.0:30000->30000/tcp, :::30000->30000/tcp, 0.0.0.0:33000->33000/tcp, :::33000->33000/tcp cubrid
+해당 에러를 해결하려다 보니 CUBRID와 CUBRID-Python은 Python 버전과의 호환성이 맞지 않으면 동작하지 않는 것 같은데 공식 문서에서 이 내용을 명시하는 부분을 찾기 힘듭니다. 해당 문서가 있다면 링크해 주시면 감사하겠습니다. 없다면 업데이트가 필요할 것 같습니다.
++문의한 오류와 관련은 없지만 qna 글 작성하는 페이지에서 종종 커서와 클릭되는 부분이 맞지 않는 오류가 있습니다. 두세줄 정도 아래에서 클릭해야 원하는 부분을 클릭할 수 있네요. 글 작성 페이지 뿐 아니라 게시판이나 그냥 버튼도 동일한 이슈가 발생하는 듯 합니다. 해당 부분도 수정해주시면 감사하겠습니다.
그리고, '-20002, 'Invalid connection handle' 오류는 주로 연결 정보, 네트워크 구성, 또는 방화벽 문제로 인해 발생할 수 있고 Python을 사용하는 경우, Java Stored Procedure(javasp)가 구동되지 않더라도 정상적인 연결과 사용이 가능합니다.
자세한 파이썬 정보는 https://www.cubrid.org/manual/ko/11.3/api/python.html 매뉴얼을 참조 하세요.