기본 콘텐츠로 건너뛰기

라벨이 DB인 게시물 표시

[db] elasticsearch란? es 설치 방법

elasticsearch는 분산 검색엔진입니다. 분산 시스템이기 때문에 검색 대상 용량이 증가했을 때 대처하기가 매우 쉽다. elasticsearch에 대해서 알아보기 전에 elasticsearch가 나온지 꽤 된 저장소이다. 과연 얼마나 최근에 업데이트가 되었는지 github에서 살펴보았는데 최근 커밋 내역이 2분전이다... ㅋㅋㅋㅋ(죄송합니다.) 해당 포스트에서는 0.20 버전을 사용하지만 현재 5.x버전까지 나왔습니다 관계형 데이터베이스 VS elasticsearch 비교 관계형 데이터베이스 elasticsearch Database Index Table Type Row Document Column Field Schema Mapping Index Everything is indexed SQL Query DSL index라는 개념이 관계형에서의 개념이 잡혀있어서 문서에서 index라고 나올 때마다 Database로 딱 안 떠오른다 ㅋㅋ elasticsearch의 특징은 다음과 같다. JSON 기반의 스키마 없는 저장소 elasticsearch는 검색엔진이지만 NoSQL처럼 사용가능 Multi-tenancy 하나의 서버안에 여러 인덱스 저장가능. 여러 인덱스의 데이터를 하나의 쿼리로 검색 가능 확장성과 유연성 플러그인을 이용해 기능확장이 용이함. BigDesk, Head를 설치하면 elasticsearch 모니터링 기능을 사용할 수 있게 된다.(직접 사용해보니 플러그인을 설치하는 것이 상당히 쉬움) 분산 저장소 노드 추가의 용이함.  키에 따라 여러 샤드가 구

[mysql] mysqldump를 이용하여 데이터 백업, 복원하기

로컬 서버에 있는 디비를 분리하기 위해 기존의 디비에 있는 데이터를 백업해야 하는 일이 생겼다. 방법은 많지만 mysqldump를 이용하여 해결을 하였다. mysqldump는 해당 내부의 데이터를 sql 문으로 전부 바꿔주는 역할을 하는 툴이다. mysqldump의 경우 mysql이 설치가 되어있다면 같이 설치가 되므로 따로 설치를 할 필요는 없다 dumpfile 생성하는 방법 dumpfile이란 sql이라는 확장자를 가지는 파일을 말한다. $ mysqldump - u [ user ] - p -- all - databases > dump . sql # 디비 서버에 있는 모든 데이터 베이스 백업 $ mysqldump - u [ user ] - p -- databases [ db name ] > dump . sql # 디비 서버에 있는 [ db name ] 에 한에서만 백업 $ mysqldump - u [ user ] - p [ db name ] . [ table name ] > dqmp . sql # 특정 디비의 특정 테이블 백업 위 에서 --all-databases, --databases와 같은 옵션이 붙어 있는데, --all-databases는 모든 데이터 베이스를 의미한다. --databases는 특정 데이터 베이스를 선택할 때 사용한다 그외에 --opt : 버퍼링 비활성화 --allow-keywords, --quote-names: 예약어를 사용하는 테이블 덤프, 복원할 수 있게 함 -d, --no-data: 데이터 제외 스키마만 덤프 -t, --no-create-info: 스키마 제외 등이 있다. dump파일 복원하는 방법 mysql > source dump . sql 초 간단하다 ㅋㅋ 단, 주의할점이 있다면 .sql파일이 있는 경로

[mysql] 디비 접속제한, 유저 접속 제한을 통해 원격에서 접속을 해보자

database도 하나의 서버이기 때문에 외부에서 접속을 해야하는 경우가 있다. 하지만 2가지의 이유로 접속이 불가능할 수 있다. 1번째. db의 접속 ip를 제한했을 경우 이는 디비 자체에서 특정 ip대역만 접속을 허용하도록 설정하는 경우이다. 2번째. 경우 유저의 접속 ip를 제한하는 경우이다. 필자는 오늘 개발된 서버의 정보를 받아다가 개발을 이어하던 상황을 맞이했다. 디비와 서버가 같은 로컬환경에서 이루어 졌고. 그렇기 때문에 디비의 접속 ip가 localhost로 제한이 걸려있었다. 또한 계정의 접속 ip도 localhsot로 제한이 걸려있어서 개인 로컬 환경에서 정상적인 디비접속이 이루어지지 않았다. 디비 접속 ip가 제한당하면 디비 커넥자체가 되지 않지만 유저접속 아이피가 제한을 당해도 정상적인 디비접속은 가능하다 다만 디비 목록을 제대로 다 읽어오지 못하는 현상이 발생한다. (필자는 이 부분을 처음 경험했기 때문에 유저 제한이 걸려있는지 적당한 삽질끝에 찾아냈다. phpmyadmin에서는 타 계정이 정상접속이 됬는데 디비 클라이언트에서 접속을 할땐 정상접속이 되지 않았고 이를 통해 유저가 디비 접속을 하는 위치에 따라 디비 목록을 받아오지 못하는 현상이 있다는것을 알게되었다.) 추가 적으로 ip접속 제한이 걸려있다면  $ mysql - h ip주소 - u 계정 - p 여기서 ip주소는 localhost나 127.0.0.1이 아닌 실제 서버 주소를 쳐야한다.  실 디비서버 에서 위와같은 방식으로 접속을 해도 로컬 개발환경에서 뜨는 현상과 똑같이 떴음을 확인을 했고 종합결과 유저에 대한 제한이라고 판단을 했다 .(머 사실 이경우밖에 없어서 판단이고 머고 없음... ㅋㅋ 단지 확실할뿐.... ㅋㅋㅋㅋ) 디비 접속제한 설정하는 방법 root@ip -172 - 31 - 2 - 167 : / etc / mysql# netstat - n