본문 바로가기
반응형

MariaDB8

Django - Mysql/Maria DB 연결 구성 Django의 기본 Database는 파일기반의 SQLite를 사용하도록 되어 있다. 이를 보다 효율적으로 관리하기 위해서 Mysql/Maria DB 연결 방식을 여기에 기록해 놓는다. 먼저 Django 환경 구성 파일인 setting.py에서 DATABASE 부분을 찾아 다음과 같이 변경하도록 하자. import urllib.parse db_hostname = '' # 데이터 베이스 서버 IP db_name = '' # 데이터 베이스 이름 db_user = '' # 데이터 베이스 유저 이름 db_pass = urllib.parse.quote_plus('') # 데이터 베이스 유저의 비밀번호 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql'.. 2022. 11. 18.
MariaDB - MySQL Strict Mode is not set for database connection 'default' 작은 부분이지만, 추후 오류를 발생시킬 수 있는 부분으로, MariaDB의 경우 호환성 모드로 동작을 하는데 특정 조건에 맞지 않는 경우 자동으로 판단하여 데이터를 입력하게 된다. (예, unsigned 컬럼에 -1 이 입력되면 자동으로 0 으로 변환) 이러한 이유가 발생하는 이유는 STRICT_ALL_TABLES, STRICT_TRANS_TABLES 가 꺼져있어서 발생하며, STRICT_ALL_TABLES, STRICT_TRANS_TABLES이 비활성화 되어 있으면 CHAR, VARCHAR 의 크기를 초과하는 데이터 입력시 에러를 발생하지 않고 가능한 크기 만큼 잘라서 넣게 된다. 이는 운영상 위험이 있을 수 있기 때문에 아래와 같이 STRICT_ALL_TABLES, STRICT_TRANS_TABLES.. 2022. 9. 1.
Django - MySQL/MariaDB 연결하기 Django를 설칳면 기본적으로 파일 기반의 SQLite가 설치되어 있다. 서비스를 위해서는 파일 기반의 데이터베이스를 사용하기에는 용이하지 않다. 현재 MariaDB라는 MySQL와 완전히 호환되는 오픈 소스 데이터베이스가 있기 때문에 많은 사용자들이 이 데이터베이스를 사용하고 있다. 여기에서는 Django를 MySQL을 연결하는 방법에 대해서 기본적인 내용을 다루어 보도록 하겠다. MySQL/MariaDB 라이브러리 설치 MySQL/MariaDB 을 사용하기 위해서는 먼저 라이브러리를 설치해야 한다. 라이브러리는 MySQL/MariaDB 모두 mysqlclient를 사용할 수 있다. pip install mysqlclient 위 명령을 통해 라이브러리를 설치하도록 하자. settings.py 설정 s.. 2022. 8. 27.
Mariadb - 3306 port listen change 127.0.0.1 to 0.0.0.0 Mariadb의 기본적으로 설치가 되고, 사용하고자 사용자와 권한을 추가하고 나서 원격 서버에서 접근을 시도하면 접근이 되지 않는다. netstat로 살펴보면, 이유는 기본 포트 연결이 로컬(즉 127.0.0.1)로만 가능하고 원격 접근이 되지 않도록 되어 있기 때문이다. netstat -lnp | grep 3306 이를 해결하기 위해 인터넷을 찾아보았는데 보다 추후를 위해 정리해 본다. 이는 MariaDB의 환경설정 파일의 bind-address 부분을 수정해 주면된다. 인터넷에 보면, 여러가지 etc/mysql/my.cf를 수정해라, /etc/mysql/conf.d/mysql.cnf를 수정하라는 얘기도 있고 하지만, 결과적으로 아래와 같이 환경 설정 정보가 저장되어 있는 기존 파일을 찾아야 한다. 찾.. 2021. 10. 29.
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/Mysql - Install and Remote connection by New User youtu.be/5mBVFSh83Ak 오늘 간단히 MariaDB를 Ubuntu에 설치하고, 원격으로 접근하는 방법을 정리해 보았다. 1. Install MariaDB 가장 먼저 진행할 부분은 MariaDB를 설치하는 것이다. 설치 방법은 apt 명령을 이용하면 서비스 등록까지 간편하게 등록되어 설치를 마무리 할 수 있다. $sudo apt update $sudo apt install mariadb-server 이후 진행해야 하는 부분은 기본 보안 설정이다. MariaDB가 설치된 상황에서는 root 패스워드가 없다. root 패스워드를 설정하고, 기본적으로 권고하는 보안 설정등을 진행하는데 도움을 주는 mysql_secure_installation 를 실행하자. 2. Start default mariad.. 2020. 11. 6.
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.
반응형