mysql(4)
-
(MySQL) Docker + MySQL를 Datagrip에 연결하기
이전에는 Dokcer로 MySQL 서버를 띄우는 글을 작성한 적이 있습니다. (Docker) Mysql(PostgreSQL, mariaDB 등)을 도커로 실행시키기 mysql과 postgresql은 각각 3306, 5432 포트를 기본으로 사용하기 때문에 겹칠일이 없지만, mysql과 mariaDB같은 경우 둘다 3306 포트로 실행되는데다, 같은 로컬환경에 출돌이 일어나기 쉽상이다. 그래서 이 mirrorofcode.tistory.com 위 방법은 여전히 잘 실행되는데요, DB를 Datagrip이나 MySQL workbench 같은 툴에 연결하고 싶을 때가 있을 겁니다. (왜인지는 모르겠는데 root 계정은 연결이 안되더라고요.)(사실 안 찾아봄) 이때는 db를 생성해주고, 사용자를 만들어서 권한을 넘..
2022.12.02 -
(Database) MySQL서버 구조와 스레딩 구조
MySQL을 사용할 때, MySQL은 어떤 방식으로 동작하는지 알고 싶지 않은가? MySQL은 다른 DBMS에 비해서 구조가 상당히 독특하다. Transaction만 봐도 그렇다. Postgresql의 경우, transaction을 적용하고 싶으면, begin과 commit 을 명시해줘야 한다. 하지만 MySQL의 InnoDB의 경우 Transaction을 기본으로 지원하므로, 훨씬 편리하게 사용이 가능하다. 그럼 MySQL 엔진 아키텍처에 대해 알아보자. 🧐MySQL 전체 구조 MySQL은 일반 상용 RDBMS와 같이 대부분의 프로그래밍 언어로 부터 접근 방법을 모두 지원한다. (개꿀) MySQL서버는 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. MySQL 엔진 MySQL엔진은 커넥션 핸..
2022.07.09 -
(Database) 트랜잭션(ACID)과 무결성
구글에 트랙잭션을 검색하면 가장 많이 나오는 말이 있다. "DB의 상태를 변화시키기 수행하는 단위" 그런데 이것 만으로는 트랜잭션에 관해 전혀 감이 오지 않는다. (나만 그런가?) 나는 이 문장을 접했을 때 드는 생각은 아 DB에 접근하면 다 트랜잭션이구나 트랙잭션 자체의 개념에 대해 이해하지 못하면 스프링 서비스 레이어에 붙이는 @Transactional이나 MySQL에서의 잠금, 동시성에 대한 이해를 할 수 없다고 생각한다. 🧐What is Transaction? 트랙잭션을 이해하는데 가장 도움되는 말은 이것이라고 생각한다. 트랙잭션은 작업의 완전성을 보장해 주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생..
2022.07.09 -
(Docker) Mysql(PostgreSQL, mariaDB 등)을 도커로 실행시키기
mysql과 postgresql은 각각 3306, 5432 포트를 기본으로 사용하기 때문에 겹칠일이 없지만, mysql과 mariaDB같은 경우 둘다 3306 포트로 실행되는데다, 같은 로컬환경에 출돌이 일어나기 쉽상이다. 그래서 이에 대한 해결책으로 도커에서 DB를 띄우는 법에 대해서 얘기하려 한다. 🏴 MySQL을 Docker에서 당연히 이 과정을 수행하기 위해서는 Docker가 기본적으로 설치되어 있어야겠다. 그리고 당연히 기본적인 docker 명령어들은 숙지가 되어 있어야 한다. // 로그인 되어 있지 않다면 로그인 docker login // 실행되고 있는 것은 무엇인지 확인 docker ps // 사실 docker 앱 보면 바로 알 수 있긴하다 먼저 로컬환경에 mysql 도커 이미지를..
2022.03.24