본문 바로가기

Database

(52)
mysql only_full_group_by SET sql_mode = '' or set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql int bigint mysql을 사용하면서 몰랐던 정보들을 알아서 적어본다. int / bigint 에 관한 내용인데 먼저 int / bigint 의 최대값은 unsigned 일 경우 각각 4억과 4천경이다(저만큼 넣을 데이터가 있는건가..)...... int는 4바이트(자릿수 10자리) bigint는 8바이트로 (자릿수 20자리) 로 생각면 된다. 자세한 사항은 공식 홈피 확인 https://dev.mysql.com/doc/refman/5.5/en/integer-types.html 두번째로 대부분 많은 분들이 테이블 선언시 int(4) 하면 4자리까지만 들어간다고 생각하실수도 있는데 (실은 내가 그랬다.) 만일 3자리 숫자 999 를 넣었다면 출력될때 0999 로 해당 4자리이하일때 앞에 0을 붙여서 내보낸다. (zero..
mysql workbench 작업시 fk 칼럼 속성 변경시엔 확인을 잘해야합니다. 재미있는것을 발견( 지금까지 몰랐던것을 발견)!! 테이블간의 관계인 fk( Foreign Key Constraint) 가 설정되어 있을때 fk 생성시 해당 칼럼을 not null 속성을 넣지 않았다. (이건 가능함)헌데 not null 속성을 넣을려면 먼저 해당 fk 를 지운후 alter 로 notnull 속성을 넣어준후 다시 fk 속성을 넣어줘야 한다. 여기까진 문제가 없다. 이번엔 unsigned 속성을 넣어보려 한다. 헌데 fk의 기본이 되는 pk 속성중에 unsigned 속성이 없다면 어떻게 되느냐?! 아까와 같이 "먼저 해당 fk 를 지운후 alter 로 unsigned 속성을 넣어준후 다시 fk 속성을 넣어줘야 한다. "에서 unsigned 속성을 넣은후 다시 fk 속성을 넣을 때 에러가 발생..
spark maven error spark 내 maven 으로 하둡관련 설치 시 아래와 같이 에러가 난다면 [WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message: Detected Maven Version: 3.0.5 is not in the allowed range 3.3.3. [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Spark Project Parent POM .......................... FAILURE [2:25.599s] [INFO] S..
mongodb Replica Set replica set(이하 리플리카셋)은 여러 대의 서버에 원본을 복사해 두고,장애가 발생시 자동으로 장애 이외의 디비 중 하나를 선택하여 원본 디비처럼 사용할 수 있도록 있습니다. 이로 인해 서비스를 끊기지 않고 지속적으로 유지할 수 있습니다. 리플리카셋에서 첫번째 입력을 담당하는 서버를 primary 서버라 부르며 그밖의 서버를 secondary 서버라 부릅니다. 프라이머리 서버는 세컨더리 서버를 2초 마다 상태 체크하여 데이터 동기화를 하기 위해 HeartBeat(일종의 ping 확인)를 확인합니다. 이때 세컨더리서버가 사용할수 없더라도 프라이머리 서버는 살아있으므로 서비스는 유지 됩니다. 만일 프라이머리 서버에 이상이 생길 경우 세컨더리서버 끼리의 선거를 통해 프라이머리서버를 선출하여 작동하게 됩..
mongodb sharding mongodb sharding( 이하 샤딩으로 표기) 은 mongodb끼리의 데이터 복제함으로서 다른 서버와의 동기화 및 빅데이터를 저장하기 위해서 분산 저장을 하는것이 샤딩의 목적입니다. 샤딩은 mongodb 두대로도 가능하지만 최소 3대를 권장하며, 실질적인 데이터 복제가 아닌 mongodb내의 oplog에 의한 명령어를 복사/ 실행함으로서 데이터를 유지합니다. 여기서는 한 컴퓨터에서 서버를 3대를 실행합니다.먼저 저장소가 서로 다르게 되어야 하므로 폴더를 따로 만들어 줍니다.$ mkdir shard1 shard2 shard3 $ sudo ./mongod -shardsvr -dbpath /data/shard1 -port 40001$ sudo ./mongod -shardsvr -dbpath /data/..
mongodb 기본 CRUD 1. insert (save)> db.scores.save({num:99}); db.scores.save({num:99}) -> scores 콜렉션에 num:99 를 넣으시요. 데이터 확인 find()> db.scores.find(); db.scores.find(); -> scores 콜렉션에 있는 모든 데이터를 가져오시오. > for(i=0; i db.scores.find(); 2. Read (find) > db.scores.find({num:0});db.scores.find({num:0}); -> num이 0인것을 찾으시오_id는 mongodb가 각각의 데이터에 부여하는 객체 id 값 입니다. (고유값) 해당 id로 찾기 위해선 objectid 로 변환해줘야 합니다. > db.scores.find( ..
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) mysql 만일 mysql 이 설치가 되었고 ps -ef | grep mysql 현 상태에서 서비스가 실행중이라면 실행하고 다시 접속하면 정상적으로 실행된다. mysqld_safe --user=root &