본문 바로가기
반응형

mysql8

Python - SQLAlchemy, pymysql 사용 SQLAlchemy는 Python에서 mysql등 데이터베이스를 질의할 때 유용하게 활용할 수 있는 옵션이다. https://docs.sqlalchemy.org/en/14/core/engines.html#mysql Engine Configuration — SQLAlchemy 1.4 Documentation Engine Configuration The Engine is the starting point for any SQLAlchemy application. It’s “home base” for the actual database and its DBAPI, delivered to the SQLAlchemy application through a connection pool and a Dialect, whi.. 2022. 5. 12.
Python - FastAPI Relationship SQL data 처리 FastAPI를 이용해서 Relationship 데이터를 처리하면서 해당 부분만 요약해서 정리해 본다. 본 예시에서는 Post라는 본문에 관련있는 Account들을 나열하는 구조를 예시로 잡았다. 그리고 기본 프로그램의 구조는 아래와 같다. . └── crud.py ├── database.py ├── main.py ├── api.py └── schemas.py 이를 위해 Account와 Post에 대한 관계 테이블에 대한 Model을 정의 해야 한다. Post와 관련있는 Account를 참조하기 위해서 Account에 post_id라는 외례키 컬럼을 추가하였다. models.py from sqlalchemy import Boolean, Column, Integer, String, DateTime, Big.. 2022. 4. 12.
pymysql error - RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods pymysql을 이용해서 mysql 인증시 아래와 같은 cryptography 오류가 발생한다면 해당 인증 모듈이 설치가 되어 있지 않아서이다. 아래 명령으로 cryptography 를 설치하도록 하자. pip install cryptography 2022. 4. 8.
Python - sqlalchemy bigint 사용한 id 값 고려 Python 의 기본 ORM 을 사용한다면, id 필드를 통한 unique 값 생성이 기본이다. 기본값은 INT인데, INT로 생성할 경우 최대 생성 가능한 컬럼이 2,147,483,647 까지 가능하다. 만약 이값을 넘어간다면, 추후 BIGINT로 변경하는 것을 고려해야 한다. 따라서 되도록 초기 구성시 INT보다 큰 값을 제공하는 BIGINT를 이용하기를 추천한다. https://docs.sqlalchemy.org/en/14/core/type_basics.html Column and Data Types — SQLAlchemy 1.4 Documentation A type for fixed precision numbers, such as NUMERIC or DECIMAL. This type returns.. 2021. 5. 4.
Django - MySQL/MariaDB 연결하기 대부분의 서비스용도로 사용하다면, 기본적으로 제공하는 파일 기반의 Database인 SQLlite 보다는 MySQL, 혹은 MariaDB를 통해 Database를 사용하는 것이 확장성에 좋기 때문에 MySQL/MariaDB 연결 방법에 대해서 정리해 본다. 1. mysqlclient 설치 가장 먼저 해야 할 일은 MySQLClient를 설치하는 것이다. Visual Studio 기준으로 env 에서 마우스 우클릭을 통해 Manage Python Packages 에서 mysqlclient를 입력하여 설치할 수 있으며, 이는 pip를 통해 설치한 것과 동일하다. pip install mysqlclient 설치가 완료되면, 패키지가 추가된 것을 확인 할 수 있다. 2. DATABASE 설정 변경 Django의.. 2021. 3. 24.
MySQL/MariaDB - root 계정 초기화/비밀번호 재설정 오늘은 MiaraDB 작업중에 발생한 root 비밀번호 분실에 따른 재설정을 진행하였다. 이유는 정확히 모르지만, sudo mysql_secure_installation 작업 도중 root 비밀번호 변경에서 강제 중지를 하였더니 root 계정이 사라져 버렸다. 이를 해결 하기 위해서 인터넷의 정보를 확인했고 여기에 정리하는 차원으로 남긴다. 방법은 MariaDB와 MySQL 모두 동일한 방식으로 사용이 가능하다. 아마 root 계정의 비밀번호를 분실했거나, 계정을 삭제한 상황이라면, 아래 방법이 유용하다. 처음에 찾은 글은 재설정하는 방법이였는데, 결과적으로 재설정이나 새로 root 계정을 생성하는 과정을 비슷하다고 할 수 있다. 1. MySQL/MariaDB Safe Mode 시작 처음 진행할 부분은 .. 2021. 1. 25.
MariaDB - Specified key was too long Specified key was too long; max key length is 767 bytes 이는 InnoDB 엔진에 관련된 내용이다. MariaDB, MySQL은 하나의 Row이 가질 수 있는 최대 Index 길이의 제한이 있고 이 제한이 767 Bytes 까지이다. 이 제한을 풀기 위해서는 set global innodb_large_prefix = ON; 이후 생성하고자 하는 테이블 옵션에 ROW_FORMAT=DYNAMIC 옵션을 추가하여 해결이 가능하다. set global innodb_large_prefix = ON; 위 옵션이 정상적으로 실행되었다면 테이블을 만들때 엔진 옵션으로 DYNAMIC을 추가하면 정상적으로 테이블 생성이 가능하다. ENGINE=INNODB ROW_FORMAT=DY.. 2020. 11. 6.
MYSQL – 최대 길이가 ‘250’인 문자열 또는 배열 형식이어야 합니다. .NET MVC에서 MYSQL을 연결하여 데이터베이스에 기록을 하다보면, 다음과 같은 오류를 만날 수 있습니다. Message “하나 이상의 엔터티에 대해 유효성을 검사하지 못했습니다. 자세한 내용은 ‘EntityValidationErrors’ 속성을 참조하십시오.” Exception 위 오류를 확인 하였을 때 보통 MYSQL의 제한에 의해 발생하는 오류로 아래 경로를 따라 들어가면 확인 할 수 있습니다. ex -> EntityValidationErrors -> ValidationErrors -> [0] -> ErrorMessage 여기에서 오늘 특이하게 경험한 오류코드는 다음과 같습니다. ErrorMessage “필드 xxx(는) 최대 길이가 ‘250’인 문자열 또는 배열 형식이어야 합니다.” 위 오류.. 2020. 10. 28.
반응형