MySQL

MySQL로 DB 구축하고 쿼리문으로 데이터 추가하기

solfa 2024. 2. 24. 21:00

https://www.youtube.com/watch?v=T5dwM_j8wmU&list=PLRx0vPvlEmdD1pSqKZiTihy5rplxecNpz&index=11

나동빈님의 React와 Node.js를 활용한 고객 관리 시스템 개발 강의 예제를 따라하다가 AWS RDS로 DB를 구축하는 과정에서 이것 대신 MySQL과 워크벤치를 사용하여 DB를 구축하기로 했다. aws 잘못쓰다가 내 피같은 돈이 나갈 것 같아서... 난 가난한 대학생이란 말이다 ㅎ 그리고 MySQL이 대중적으로 많이 쓰이는 것 같아서 이걸 쓰기로 했다!

 

MySQL 설치하는 방법

난 brew로 MySQL을 설치후 workbench는 따로 설치했다.

 

1. brew update

$ brew update

brew 업데이트를 해준다

이런 식으로 command not found: brew 라는 오류가 뜬다면 환경변수 설정을 먼저 해줘야 한다!

 

+ brew 환경변수 설정하는 법

$ source ~/.zshrc

이 명령어를 입력 후 

 // M1 칩인 경우 (M2, M3 마찬가지)
export PATH=/opt/homebrew/bin:$PATH

// M1 칩이 아닌 경우
export PATH=/usr/local/bin:/usr/local/sbin:$PATH

이 명령어를 붙여넣은 후 :wq로 나온다. 이후 다시 brew하면 명령어가 제대로 인식 됨!

 

2. brew install mysql

$ brew install mysql

위 명령어로 mysql을 설치해준다

 + 설치 완료 후 버전 확인

$ mysql --version
mysql  Ver 8.3.0 for macos14.2 on arm64 (Homebrew)

 

3. 서버 시작

$ mysql.server start

Starting MySQL
. SUCCESS!

다음 명령어로 서버를 시작해준다. 성공하면 SUCCESS가 뜬다!

 

4. 초기 설정

$ mysql_secure_installation

다음 명령어를 통해 초기 설정을 해준다.

 

4-1. 비밀번호 복잡성 설정 (n 입력)

Securing the MySQL server deployment.



Connecting to MySQL using a blank password.



VALIDATE PASSWORD COMPONENT can be used to test passwords

and improve security. It checks the strength of password

and allows the users to set only those passwords which are

secure enough. Would you like to setup VALIDATE PASSWORD component?



Press y|Y for Yes, any other key for No: n

 

 

4-2. 비밀번호 설정

Please set the password for root here.

New password:

Re-enter new password:

 

4-3. 익명유저 제거 여부 (MySQL에서는 기본 설정으로 익명유저를 만든다!) (y 입력)

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

 

4-4. 외부에서도 root로 접속할수 있는지 설정 (y 입력)

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

 

4-5. 테스트 DB삭제 여부 (n 입력)

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n

 

4-6. 권한을 변경해준 내역이 있을때 해줌 (y 입력)

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

 

5. MySQL Workbench 설치

https://dev.mysql.com/downloads/workbench/

 

MySQL :: Download MySQL Workbench

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M

dev.mysql.com

다음 링크에서 버전에 맞는 워크벤치를 설치해준다. 버전 두 단계 전 추천... 오류가 많더라 ㅎ

 

6. 새로운 모델 생성

workbench 어플리케이션 설치 후 실행하면 이런 화면이 뜨는데 새로운 connections를 생성해준다.

connection name만 새로 입력해주고 ok를 누른다

여기서 hostname과 username, port는 추후에 database.js나 database.json을 통해 정보를 입력한다!

오류는 무시해준다... 아직까진 이상 무... 가끔씩 비정상적인 종료가 있긴 하다만... ㅠㅠ

초기 설정해서 설정해준 비밀번호를 입력한다

그럼 이런 화면이 뜨고 여기에 DB를 만들면 된다!

 

7. 실질적인 DB 구축 

 

드럼통같이 생긴애를 추가해준다 i 바로 오른쪽 아이콘!

schema name은 원하는 db이름으로 설정해준다.

나는 testdb로 이름지음

character set이나 collation은 설정해도 되고 안해도 나중에 변경 가능

오른쪽 아래 apply를 눌러서 생성한다

그럼 이렇게 뜨는데 내 활동을 쿼리문으로 바꿔주고 이게 맞냐~ 물어보는거다! apply해줌

그렇다

애초에 query에서 쿼리문만으로 모든 생성과 데이터 추가가 가능하다 ㅎ

그럼 이렇게 드럼통이 생긴다!!! 드럼통 == database

펼쳐보면 이렇게 있는데 테이블에 데이터를 추가해줄 것임!

마우스 오른쪽키를 누르면 create table이 뜨는데 눌러준다

그럼 이렇게 테이블 추가창이 뜨는데 원하는대로 테이블을 추가해주면 된다.

 

예시를 들어보자면

이게 강의에서 HeidiSQL에서 쿼리문으로 작성한 테이블 뼈대? 기초? 뭐라그래 암튼 변수 선언인가 그런 느낌인데

우리는 이걸 직접 해줄것이므로...

이렇게 작성해주면 된다.

PK는 Primary Key이고 이런 식으로 오른쪽 아래에 토글들을 참고하면서 만들어준다

이것도 다 하고 오른쪽 하단에 apply로 생성해준다

친절하게 쿼리문으로 바꿔서 알려주니 이거랑 강의랑 비교하면서 수정하기!

apply 후 만들어진 table에 맨 오른쪽 아이콘을 클릭하면 현재 만들어둔 테이블을 보여줌!

거의 다 했다! 기운을 내자

 

8. DB에 데이터 추가

강의 처럼 쿼리문으로 데이터를 추가해줄것이다

이 창을 찾아서 다음과 같은 쿼리문을 입력한다

입력 후에는 첫번째 번개 모양 아이콘 눌러주기

desc (table이름);

그럼 제대로 입력이 된 것을 확인할 수 있다 ㅎㅎ

 

이런 식으로 쿼리문 쓰고 적용하면 되는 것임!!

INSERT INTO (table이름) (column1, column2, column3) VALUSE (value1, value2, value3);

이 쿼리문으로 데이터를 추가한다. 열은 생략 가능

Ex)

INSERT INTO CUSTOMER VALUES (1, 'https://placeimg.com/64/64/1', '배켜니', '960508', '남자', '대학생')
INSERT INTO CUSTOMER VALUES (2, 'https://placeimg.com/64/64/2', '성찬이', '961222', '남자', '프로그래머')
INSERT INTO CUSTOMER VALUES (3, 'https://placeimg.com/64/64/3', '요즘엔은석이가좋더라', '961127', '남자', '디자이너')

 

데이터 추가 후에는 다음 쿼리문으로 들어간 데이터를 확인한다.

SELECT * FROM db이름.table이름

Ex)

SELECT * FROM testdb.CUSTOMER

데이터가 잘 들어간 것을 확인할 수 있다! 굿쟙굿쟙

이렇게 하면 데이터베이스 구축은 끝이 났다! 다양한 쿼리문을 활용해 데이터 추가, 수정, 삭제 등을 할 수 있다~

 

다음 글에서는 구축한 DB와 react 프로젝트를 연동시켜볼 예정이다.

 

다음 글 >>> https://5ffthewall.tistory.com/78

 

Node.js와 MySQL 연동하기

이어지는 글 >> https://5ffthewall.tistory.com/77 MySQL로 DB 구축하고 쿼리문으로 데이터 추가하기 https://www.youtube.com/watch?v=T5dwM_j8wmU&list=PLRx0vPvlEmdD1pSqKZiTihy5rplxecNpz&index=11 나동빈님의 React와 Node.js를 활용한

5ffthewall.tistory.com


 

참고한 블로그

https://gmlwjd9405.github.io/2018/05/09/mysql-workbench-guide.html

 

[MySQL] MySQL Workbench 사용법 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

728x90

'MySQL' 카테고리의 다른 글

Node.js와 MySQL 연동하기  (2) 2024.02.24