목록Database (18)
미니옵빠의 code stubs
MongoDB aggregate + unwind + out 조합에서 duplicate ID 오류를 만날 경우 projection 시 _id 를 없애면 됨. $out 으로 생성되는 신규 collection 의 PK 로 기존 문서의 _id 가 입력되다보니, unwind 로 array field 가 deconstructs 되었을 때 (left join 처럼) 중복 키가 발생됨. 그래서 _id 를 제거해 버리면, 신규 collection 내 신규 _id 가 생성되어 중복 오류가 사라짐 예) 기존 _id -> id 로 대체하고, _id 필드는 지움 .aggregate([{ $project: { id: '$_id', _id: 0, }},{ $unwind: { ... }},{ $out: 'tempCollection'..
MongoDB 사용 시, 데이터 추출을 위해 mongoexport 를 활용 1. aggregate 사용하지 못함가장 기본적인 export 도구이기 때문. 이럴 땐 aggregate 의 $out 기능을 활용하여"집계 결과를 신규 컬렉션에 저장" > "해당 컬렉션을 mongoexport" 로 추출 이라는 절차로 진행2.6+ 이상에서만 가능 Ref: https://stackoverflow.com/questions/16468602/mongoexport-aggregate-export-to-a-csv-file 2. ID/PW 입력 시 특수문자 escaping uri 나 host+id+pw 조합에서, 비밀번호 등에 @, $, single quote 등이 있을 경우 "server returned error on SAS..
mongoDB 에서 aggregate 후 sort 를 할 때 요런 오류 메시지를 만날 때가 있음 MongoDB : Sort exceeded memory limit of 104857600 bytes 아래와 같이 쿼리 내 allowDiskUse 옵션을 추가하여 해결 가능 db.getCollection('hello').aggregate( [ { $project: { "name": 1, "field_length": {$strLenCP: { $ifNull: ["name", "" ]}} } }, {$sort: {"field_length": -1}}, {$project: {"field_length": 0}}, ], {allowDiskUse: true} ) 참고로 Robo3T 에서 Replica Set 에 쿼리 시, ..
mongod.conf systemLog: destination: file path: "/myhome/logs/mongodb/mongod.log" logAppend: truestorage: dbPath: "/myhome/apps/mongodb/data/db" journal: enabled: trueprocessManagement: fork: truenet: bindIp: 0.0.0.0 port: 27017setParameter: enableLocalhostAuthBypass: false 실행은 이런 식으로 ./mongod --config mongod.conf ref: https://docs.mongodb.com/manual/reference/configuration-options/index.html
MongoDB 초기 설치 후 실행, Client 접속 시 외부에서 IP로 접근되지 않음. loopback 으로만 접속 가능. 아래와 같이 설정하면 내부, 외부 다 접속 가능함 ./mongod --bind_ip 0.0.0.0 또는 ./mongod --bind_ip_all * 가능하면 Configuration File을 이용하여 선언하자. Elasticsearch 도 그렇고 요새는 이런 방식이 대세임 ref: https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption-mongod-bind-ip
Mysql 에서 프로시져 등을 실행했을 때, 아래와 같은 에러 메시지가 나타날 경우, my.cnf 에 "thread_stack = 256K" 값을 추가하여 준다. [SQL] CALL 프로시져명; [Err] 1436 - Thread stack overrun: 6080 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack. ref: http://pearlin.info/mysql-error-stackoverunthread_stack-fix-mysql-overrunerror-code-1436-thread-stack-overrun/
Mysql 서버 구동 시 아래와 비슷한 메시지가 뜨는 경우는 InnoDB buffer pool size가 부족한 경우이다. 이럴 때는 my.cnf의 innodb_buffer_pool_size 의 값을 적절히 조절한다. InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use InnoDB's own implementation InnoDB: Compressed tables use zlib 1.2.1.2 InnoDB: mmap(2187329536 bytes) failed; errno 12 InnoDB: Fatal error: cannot allocate the memory for the buffer pool [ERROR] Plugi..
박재진 님의 블러그 | 안개섬 http://blog.naver.com/yuzuhara/140030113726 SET SET [GLOBAL | SESSION] sql_variabl=expression, [[GLOBAL | SESSION] sql_variable=expression...] MySQL 서버와 클라이언트에서 사용되는 다양한 옵션을 세팅한다. 다음과 같은 값들을 세팅할 수 있다. CHARACTER SET charcater_set_name | DEFAULT 모든 문자열에 대해 매핑할 문자셋을 지정한다. Source 버전의 MySQL 에 있는 sql/convert.cc 파일을 수정하여 원하는 문자셋을 추가할 수 있다. PASSWORD = PASSWORD ('some password') 현재 사용자의 ..
지도리가 xihuan하는 천문학, 드럼 | 지도리 http://blog.naver.com/jiyh78/40031468983 처음으로 MySQL을 배우려는 사람에게 이 소프트웨어는 당황스럽게 보일 수도 있다. 본기사에서는 MySQL 관리자, 설계자, 개발자에게 MySQL 설치와 관련된 퍼포먼스, 보안, 유지에 도움을 줄 수 있는 좋은 예제들을 설명할 것이다. 1. "root" 사용자 패스워드를 설정하고 사용자 명을 바꿔라. MySQL을 설치한 후 가장 먼저 해야 할 일은 루트 사용자 패스워드를 설정하는 것이다. [01:19:00] george@firenze$ mysqladmin -u root password 'somepassword' 일 단 패스워드를 설정했다면 '루트' 사용자의 이름을 다른 것으로 바꾸자..
출처: http://ihelpers.x2soft.co.kr/programming/lec.php?CMD=view&TYPE=1&KEY=&SC=S&&CC=&PAGE=1&IDX=253 - http://blog.naver.com/johnson99/90029212015 -- http://database.sarang.net/?inc=read&aid=25898&criteria=mysql&subcrit=&id=&limit=20&keyword=%C3%D6%C0%FB%C8%AD&page=1 --- http://ihelpers.x2soft.co.kr/programming/lec.php?CMD=view&TYPE=1&KEY=&SC=S&&CC=&PAGE=1&IDX=254 제목 MySQL DataBase 서버 튜닝 - Connect..