MySQL 인스턴스를 받아서 Airflow 를 연동해보는 아래와 같은 오류가 발생했다. 참고로 이 오류는 MySQL 가 group-replication 으로 세팅되어있을때 나타나는 현상이다. 구글링을 해보면 이 오류의 일반적인 케이스는 PKEY 를 지정안한 Table 을 사용할때 나타난 문제였지만, 나는 이 문제가 아니라 "FOREIGN KEY ... REFERENCES .. ON DELETE CASCADE" 제약조건이 Airflow 에서 자동생성되는 테이블에 존재했기 때문에 나타난 문제였다. 그 원인과 해결방법을 알아보도록 하자. sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (3098, 'The table does not comply wi..
MySQL 은 별도로 세팅되서 운영중이더라도, 연결이 가능한지 여부를 테스트하기위한 client 세팅을 해야할때가 있다. 이때 가장 쉬운편에 속하는게 mysql 패키지를 설치하고 원격접속해서 테스트해보는것이다. 보통은 DBMS 서버에 직접 붙어서 연결하기 때문에 파라미터를 잘 모를때가 많은데 원격 접속할때는 다음과 같이 접근하면 된다. 디폴트 포트가 3306인데, 디폴트 포트라면 --port 인자는 생략가능하다 % mysql -h 도메인주소 --port 포트번호 -u 아이디 -p 설치하기 단순히 MySQL 에 접근하더라도 mysql 패키지가 필요하다. 다음과 같은 명령어로 설치가 가능하다. sudo yum install mysql -y 연결해보기 설치가 되었으면 mysql 명령어 사용이 가능하며 다음과 ..
Airflow 2.x 버전을 띄우려고 했는데 아래와 같은오류가 발생했다. 결론부터 말하면 sqlite 의 의존성이 3.15 보다 버전이 더 커야 작동된다는말인데, centos 의 yum 을 통해 설치 가능한 버전은 sqlite는 3.7.17 버전이 가장 최신이다. 그래서 더 상위버전으로 업데이트해야 동작한다는 말이다. 해결방법은 소스를 다운로드 받아서 빌드하면 쉽게 해결된다. $ airflow standalone Traceback (most recent call last): File "/home/airflow/py3/bin/airflow", line 5, in from airflow.__main__ import main File "/home/airflow/py3/lib/python3.9/site-pack..
DBeaver 는 mac 과 windows 버전 모두 존재하는 DB 툴이라서 애용하는편이다. mysql 8.x 버전대에 접속할때 Public Key Retrieval is not allowed 오류가 일어날때가 있는데, 이를 해결하는 방법이 존재한다. allowPublicKeyRetrieval 을 True 로 변경하면 된다. 해결방법 Main 탭에서는 연결정보를 관리하는데, 그 옆에 Driver properties 탭이 존재하는데, 해당 탭을 클릭하면... 아래와 같이 Driver properties 를 변경할 수 있다. 위와같이 에러난다면 allowPublicKeyRetrieval 값이 False 로 되어있을텐데, 이 값을 True 로 변경하자. 설정이 끝난 후, Test Connection 버튼을 눌..
통합 테스트를 하려고 했는데, MYSQL 의존성이 있어서 세팅이 필요한 경우가 있다. 가장 가볍게 구성하려면, Docker 를 이용하는게 가장 손쉬운것 같다. docker 를 이용해서 mysql 8 버전을 띄우고, 외부접근 가능한 계정까지 만들어 보자. 1. docker 를 통해 mysql 기동하기 docker 가 설치되어있다면 아주 간단한 명령어로 기동이 가능하다. docker pull mysql:8.0.22 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=암호 -d -p 3306:3306 mysql:8.0.22 만약, 프로세스가 종료되도 db의 데이터가 유지되어야 한다면 볼륨마운트를 해야한다. (안그러면 컨테이너 종료하면 사라짐) 실행할 때 -v ..
오류내용 dbeaver 와 같이 java 기반의 프로그램에서 postgreSQL 에 연결하려고 할때 오류메시지는 조금씩 다르더라도 다음과 같은 Exeption 오류가 난다면 실행할 때 다음과 같이 java 옵션을 주고 실행하면 된다. javax.net.ssl.SSLHandshakeException 해결방법 java 로 실행할 때 다음과 같은 옵션을 추가해서 실행하면 된다. java -Djdk.tls.client.protocols=TLSv1.2 ...생략... 이클립스 계열에서는 ini 파일에 java 실행옵션이 나열되어있는데, dbeaver 라면 dbeaver.ini 파일에 추가하면 해결된다.