mysql
-
Neo4j: 그래프 데이터베이스 시작 (Graph)컴퓨터 2024. 4. 1. 21:32
Download Neo4j Desktop Experience Neo4j 5 on your desktop. Get started with the free graph database download today and avoid the costs of self-hosted deployment. neo4j.com Neo4j Desktop 을 이용해 간단하게 서버를 열고 db를 만든다. 사실 위치 데이터만 갖고 있는 필드들이라 관계가 필요 없는데 Neo4j spatial 과 mysql spatial을 비교해보기 위해 사용하였다. 우선 MySQL에서 데이터를 불러오기 위해, json으로 필드들을 저장했다. 그리고 Neo4j 에서 DB 선택 후 우측 APOC 플러그인을 설치한다. 그리고 로컬 import 폴더에서 파..
-
MySQL: 주변 검색 Spatial 함수 탐구컴퓨터/MySQL 2024. 3. 6. 16:24
공간 데이터 처리 카카오맵 API를 이용하여 DB에 저장된 위치 주변 데이터들을 불러오고 싶었다. Postgres + postgis를 사용하면 ST_DWithin 이란 함수를 통해 쉽게 주변 장소들을 불러올 수 있다. https://www.ibm.com/docs/ko/db2/11.5?topic=sf-st-dwithin ST_DWithin ST_DWithin 함수는 두 Geometry가 지정된 거리 내에 있는지 판별합니다. 구문 매개변수 geometry1 geometry2와 비교할 Geometry를 나타내는 ST_Geometry 유형의 값입니다. geometry2 geometry1과 비교할 Geometry를 표시하 www.ibm.com 두 함수 모두 지리적 객체 간의 거리를 계산되는데 쓰지만 최적화가 다르..
-
Python: ModuleNotFoundError: No module named 'mysql'컴퓨터/MySQL 2020. 12. 31. 09:58
어느 날 나타난, caching_sha2_password is not supported error mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported 이 오류는 mysql-connector은 오래된 버전이기 때문이다. 삭제해버린다. pip uninstall mysql-connector 제작자가 업데이트를 안 해서 Oracle에서 제작한 버전을 설치해야 한다. (v8+) (mysql-connector-python-rf보다 공식 버전을 설치하길 바람) pip install mysql-connector-python 위로도 해결이 안 될 수도 있다, import mysql을 해..
-
Python: Kafka + 대학교 공지 Parser + Slack API + MySQL컴퓨터/파이썬 2020. 12. 15. 15:00
결과물 1. 만들 것 사실, 하나의 파일로, parsing 하고, slack api에 전달하고, mySQL이나 json으로 저장해도 되지만 (Kafka Connect Sink로 해도 되고 방법은 많다.) 공부해본 것을 사용하기 위해, 짬뽕 Apache Kafka Producer에서 대학교 공지 데이터 불러오기 MySQL로 공지 저장과 동시에 Consumer로 데이터 전달하기 Apache Kafka Consumer에서 Slack API를 이용하여 댓글 남기기 (카카오톡 챗봇이 수락이 되면 카카오톡 챗봇으로 업데이트 예정) (서버 부담을 덜기 위해, 1시간 간격으로 공지 파싱) 2. 준비물 Apache Kafka Apache Kafka Apache Kafka: A Distributed Streaming Pl..
-
Python MySQL: with OPEN_DB 만들기컴퓨터/MySQL 2020. 12. 15. 10:35
commit은 항상 하고, cursor를 주로 사용하기 때문에 알아서 close 시키는 with문을 만들고 싶었다. custom with문 만들기 import os from contextlib import contextmanager @contextmanager def OPEN_DB(): # connect to my local MySQL instance using connection string db = mysql.connector.connect( host="localhost", user=os.environ["MYSQL_USER"], password=os.environ["MYSQL_PASSWORD"], database="mydb", charset="utf8", ) cursor = db.cursor(buff..
-
Python MySQL: 중복 row 인지 확인하기컴퓨터/MySQL 2020. 12. 15. 10:30
위와 같이 id, title, ...로 이루어진 row들이 있는 데이터베이스가 있다. id는 primary key이고, id를 INSERT하기 전에 중복인지 확인하고 싶었다. db 초기화 import mysql.connector db = mysql.connector.connect( host="localhost", user=os.environ["MYSQL_USER"], password=os.environ["MYSQL_PASSWORD"], database="mydb", charset="utf8", ) cursor = db.cursor(buffered=True) 중복 row 체크 왜 빠를까? 만약 id가 기본 키라면 인덱싱이 된다. 인덱스 스캔은 테이블 스캔보다 빠르니까 크기에 관계없이 동일한 성능을 보여준다..
-
MySQL 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다.컴퓨터/MySQL 2020. 12. 15. 10:23
모르고 시작 메뉴에서 MySQL을 제거하고 재부팅했더니, 서비스도 안 보이고 MySQL 시작도 안됐다. MySQL 서비스 등록하는 방법 cmd를 관리자 권한으로 실행 mysqld --install MySQL 초기화하기 cmd를 관리자 권한으로 실행 mysqld --initialize --console ※ db와 비밀번호가 초기화되어버린다. ※ 꼭 console 옵션을 붙여서, 임시 비밀번호를 확인한다. MySQL 서비스 실행하기 net start mysql 테스트하기 -p 옵션으로 비밀번호를 입력 후 접속하도록 한다. 비밀번호엔 초기화해서 받은 임시 비밀번호를 사용한다. mysql -uroot -p