분류 전체보기 1386

MySQL/MariaDB 파일 읽기/쓰기시 발생할 수 있는 secure-file-priv 오류

MySQL/MariaDB 파일 읽기/쓰기시 발생할 수 있는 secure-file-priv 오류 · Version : MySQL 5.7 MySQL에서 LOAD DATA 및 SELECT.. INTO OUTFILE, LOAD_FILE() 함수를 사용할 경우, 아래와 같은 오류와 함께 실행이 실패되는 경우가 있다. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 이러한 오류는 MySQL 시스템 설정 문제로, 보안과 관련이 있다. 즉, MySQL이 허용하는 경로의 위치에서만 파일을 읽고 쓸 수 있도록 지정된 것이며, 아래 스크립트를 통해서 현재 사용할 수 있는 경로를 확인할 수 있다. ..

MySQL, MariaDB 2019.07.24

MySQL/MariaDB ROW Size Limit

MySQL/MariaDB ROW Size Limit · Version : MySQL 5.7 SQL Server에서 사용하던 일부 데이터를 MySQL 서버로 마이그레이션 작업 진행중, 컬럼수가 많은 (또는 컬럼의 길이가 큰 테이블) 테이블이 MySQL에서는 아래와 같은 오류와 함께 테이블이 생성되지 않는 문제가 발생하였다. Error Code: 1118. Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. 해당 원인을 찾아본 결과, SQL Server의 경우 한 페이지의 크기가 8K로 고정이 되어있고, Row..

MySQL, MariaDB 2019.07.20

MySQL/MariaDB sql_mode 설정 변경으로 NULL 데이터 처리하기

MySQL/MariaDB sql_mode 설정 변경으로 NULL 데이터 처리하기 · Version : MySQL 5.7 MS SQL Server에서 BCP를 이용하여 데이터를 탭 구분형식의 텍스트 파일로 내려받고 MySQL에서는 Bulk load(LOAD DATA INFILE)를 사용하여 데이터를 복원할때 아래와 같은 에러가 지속적으로 발생하였다. Error Code: 1366. Incorrect decimal value … 이 문제는 Decimal 컬럼에 NULL값을 입력할때 MySQL의 유효성 문제로 에러가 발생한 것이다. 해당 컬럼은 NULL 허용 컬럼임에도 불구하고 지속적으로 동일한 문제가 발생하여, 해결 방법을 찾아본 결과 아래와 같은 sql_mode 변경으로 해결할 수 있었다. SET SESS..

MySQL, MariaDB 2019.07.06

MySQL/MariaDB Timezone 설정 및 확인

MySQL/MariaDB Timezone 설정 및 확인 · Version : MySQL 5.7, Docker MySQL/MariaDB를 운영할때, 타임존에 대해서 알아본다. 아래 스크립트는 현재 데이터베이스의 타임존을 확인한다. 타임존이 SYSTEM 으로 표시되면 별도의 타임존 설정이 되어 있지 않다는 뜻이며 시스템의 타임존을 사용하겠다는 뜻이다. SELECT @@GLOBAL.time_zone, @@SESSION.time_zone, @@system_time_zone; 데이터베이스 설정에서 default-time-zone 변경 방법은 my.ini (my.cnf)에서 [mysqld] 영역에 타임존을 추가한다. 아래 스크립트는KST로 타임존을 설정하였으며 스크립트 적용 후MySQL 서비스 재시작이 필요하다. ..

MySQL, MariaDB 2019.06.13

Redis Memory LFU(Least Frequently Used) 캐시

Redis Memory LFU(Least Frequently Used) 캐시 · Version : Redis 4.0 Redis 4.0 부터 제공되는 LFU 알고리즘 캐시는 자주 참조되는 데이터만 배치하고 그렇지 않은 데이터들은 메모리로부터 제거하여 자주 사용되는 데이터들이 메모리에 배치되도록하는 알고리즘이다. LRU 알고리즘은 최근에 액세스 했지만 실제로는 거의 요청하지 않는 항목에 대해서도 메모리에 보관하고 자주 요청되는 키에 대해서는 만료가 되기 때문에 의도하지 않은 성능이 나타날 수도 있다. LFU는 Approximated LRU와 유사하다. 모리스 카운터라고 하는 확률적 카운터를 사용하여 개체의 액세스 빈도를 계산하고 감쇠 기간과 결합하여 시간이 지남에 따라 카운터가 감소한다. 알고리즘은 액세스 ..

NoSql, MemoryDB 2019.06.07

Redis Memory LRU(Least Recently Used) 캐시

Redis Memory LRU(Least Recently Used) 캐시 · Version : Redis 3.2.100 (Windows) Redis에서 캐시로 사용되는 알고리즘으로 LRU(Least Recently Used)를 사용한다. LRU 알고리즘은 최근에 사용된 데이터들은 재사용이 될 가능성이 높다고 판단하여 계속해서 메모리에 상주 시킬수 있도록 재배치 하는 작업이다. LRU 알고리즘으로 Redis 서버 인스턴스를 운영하기 위해서는CONFIG SET 명령어 또는 redis.conf 파일에서 아래 파라메터를 수정한다. · maxmemory · maxmemory-samples 5 maxmemory 파라메터는 Redis 서버에 할당할 수 있는 최대 메모리 크기이며, 이 값을 0로 설정할 경우 최대 메모..

NoSql, MemoryDB 2019.06.04

Redis Memory 정보

Redis Memory 정보 · Version : Redis 3.2.100 (Windows) Redis에서 info명령은 서버의 각종 통계 및 상태를 보여준다. 다양한 매개 변수를 사용하여 특정 정보를 확인할 수 있으며 이번 포스트에서는 메모리 관련 정보를 확인해본다. Redis에 접속하여 Redis info 명령을 실행하면 메모리 관련 사용 정보를 반환한다. info memory · *_human 값은 동일 항목의 byte 값을 Kbyte로 변환하여 나타낸 값 Info linst Comments used_memory Redis 서버에 현재 할당된(libc, jemalloc, tcmalloc 등) 메모리 크기 (byte) used_memory_rss 운영체제에서 볼 때 Redis가 할당한 byte 수. ..

NoSql, MemoryDB 2019.05.21

Redis Architecture

Redis Architecture · Version : Redis 3.2.100 (Windows) 아래 그림은 Redis Server Architecture 이며, 크게 3가지 영역인, 메모리, 파일, 프로세스 영역으로 구성되어 있다. [메모리 영역] · Resident Area (Working Set) : 사용자가 Redis 서버에 접속해서 처리하는 모든 데이터가 가정 먼저 저장되는 영역이며 실제 작업이 수행되는 영역. · Data Structure : Redis를 운영하기 위한 다양한 정보를 저장하고 관리하기 위한 영역. [파일 영역] · AOF 파일 : 메모리에 저장된 사용자 데이터를 파일에 기록하는 영역 (스냅샷 데이터) · DUMP 파일 : 소량의 데이터를 일시적으로 저장할때 사용하는 영역 [프..

NoSql, MemoryDB 2019.05.18

Redis 데이터 타입 – Geo

Redis 데이터 타입 – Geo · Version : Redis 3.2.100 (Windows) Redis 의 Geo 데이터 타입은 위치정보(위도, 경도) 데이터를 효율적으로 저장하고 사용할 수 있다. geoadd, geopos, geodist, georadius, geohash 명령어를 사용한다. [geoadd] 데이터를 저장한다. geoadd key longitude latitude member [longitude latitude member] … ex) geopos position 127.1058431 37.5164113 “Local A” 127.0980748 37.5301218 “Local 2” [geopos] 데이터를 검색한다 geopos key member [member] … ex) geop..

NoSql, MemoryDB 2019.05.15

Redis 데이터 타입 – bit

Redis 데이터 타입 – bit · Version : Redis 3.2.100 (Windows) Redis 의 bit는 0과 1로 표시하며 setbit, getbit, bitcount 명령어를 사용한다. [setbit] 데이터를 저장한다. Serbit key offset value ex) setbit order:20190509 1001 1 [getbit] 데이터를 검색한다. getbit key offset ex) getbit order:20190509 1001 [bitcount] 키 범위내의 value 카운트를 나타낸다. bitcount key start end ex) bitcount order:20190509 0 -1 [참고자료] https://redis.io/commands 2019-05-09 / ..

NoSql, MemoryDB 2019.05.10