ian의 개발일기장

19. 데이터베이스 - MySQL 소개 및 기본사용법 본문

Front-End/Node.js

19. 데이터베이스 - MySQL 소개 및 기본사용법

ian90 2018. 10. 1. 20:42

1. MySQL 소개

  • 관계형 데이터베이스 시스템
  • 웹에서 성공
  • MariaDB - MySQL과 호환가능



    2. MySQL 설치 - 맥(OS X)

    • bitnami 이용

    • MySQL에서 홈페이지 다운

    • homebrew를 이용한 설치

    homebrew를 이용해서 설치해보자.


    1. MySQL 설치 - 터미널에 brew install mysql 입력


    2. MySQL 시작 - 터미널에 mysql.server start 입력

    3. root 비밀번호 설정 - 터미널에 mysql_secure_installation 입력

    터미널에 입력을 하면 여러가지 설정들이 뜬다.

    1. 복잡한 비밀번호 설정을 위한 과정을 거칠 것인가?  저는 no로 대답.

    2. root 비밀번호 입력 및 확인 - 개인비번 입력

    3. 익명 사용자를 삭제할 것인가? 저는 yes (mysql -uroot로 접속해야함. no를 하면 mysql만으로 접속가능)

    4. 원격접속을 허용할것인가? 저는 yes(원격접속불가)

    5. test 데이터베이스를 삭제할것인가? No

    6. 수정할 것이 있어서, 위의 과정을 다시 거치시겠습니까? NO

    위의 메세지와 함께 종료된다.

    4. MySQL 사용 -  root비번을 설정하였다면, 터미널에 mysql -uroot -p 입력, 설정을 하지 않았다면 mysql -uroot입력으로 접속가능

    터미널에 입력하면 비번을 입력하는 문구가 나오고, 비번을 입력하면 mysql로 접속한 터미널이 뜬다.


    5. MySQL 종료 - 터미널에 exit 입력




    3. MySQL 구조

    • Database Server - 데이터베이스 서버 안에 데이터를 저장하고, 저장된 데이터를 조회, 수정, 삭제등 제어를 할 수 있다.
    • Database - Table들을 비슷한것 끼리 그룹핑한 것, 비슷한 카테고리로 분류한 것.
    • Table - database의 가장 기본적인 단위, 수평은 row(행), 수직은 column(열)



    4. MySQL 사용하기

    • 터미널에 mysql -uroot -p 입력, 설정을 하지 않았다면 mysql -uroot입력으로 접속가능


    • Database 만들기 (Database Server 와 Database는 다름!!) - 터미널에 CREATE DATABASE 데이터베이스이름(위의 그림을 따라할 것이므로, o2로 입력, 더자세하기 하기위해 생활코딩코드 복붙!)


    • Database 확인 - 터미널에 SHOW DATABASES; 입력 (;꼭 붙여야함!)


    • Database 접속(Database 선택) - use 데이터베이스이름


    • Table 생성 - 자세한건 MySQL수업을 봐야하므로, 주어진 코드를 복붙하였다.


    • 생성된 Table 확인 - SHOW 테이블이름


    • 데이터 추가(INSERT) -  INSERT INTO 테이블명 (테이블컬럼2, 테이블컬럼3, 테이블컬럼4) VALUES(테이블컬럼2값, 테이블컬럼3값, 테이블컬럼4값) => ex)INSERT  INTO topic (title, description, author) VALUES('JavaScript', 'Computer language for web.', 'egoing');  (위의 테이블 참고!)


    • 추가한 데이터 가져오기 - SELECT * FROM 테이블명; (* - 모든)

    id는 자동생성됨(데이터를 구분하는 식별자)


    • 특정한 하나의 행 데이터 가져오기 - SELECT * FROM 테이블명 WHERE 식별자



    5. MySQL - UPDATE & DELETE

    • 데이터 수정 - UPDATE 테이블명 SET 바꿀컬럼=바꿀값 WHERE 식별자

    입력 후, 표를 확인하면 수정된 것을 확인 할 수 있다. 그러나 WHERE를 입력안하면, 큰일이 난다. 모든데이터가 바뀐다.


    • 데이터 삭제 - DELETE FROM 테이블명 WHERE 식별자

    정말 id=2인 행이 삭제가 되었다. WHERE를 입력안하면, 모든데이터가 삭제된다.



    6. node-mysql 1 :  접속

    • node-mysql 설치 - 터미널에 npm install -S mysql 입력


    • node로 mysql 접속 

    node-mysql 깃허브에 예제가 나와있다. 예제를 통해 확인해보자.


    database_mysql.js를 만든후, 위와같이 입력후, 서버를 켜보자. 대신 password 부분은 sql 접속할때 만든 비번으로 입력해야한다. 임의로 11111 입력한것이다.


    만약 에러가 나면, stackoverflow에 검색을 하니 mysql에서 ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘사용할패스워드’ 이것을 통해 해결했다.

    이렇게 되야 정상 작동 하는 것이다. 다만 위코드에서 database: 'o2'가 아닌 다른이름을 입력하면 에러가 난다. 왜냐하면 우리 mysql에 존재하지 않기 때문이다. Ctrl+C를 누르면 서버는 종료된다.


    코드를 다시 추가해서, 서버를 껏다가 켜보자.

    err가 없어서 else문이 실행되었다. rows는 우리가 만든 mysql table의 행들을 보여준다. fields는 열을 보여준다.



    7. node-mysql 2 :  SELECT & INSERT

    • 데이터 추가해보기 - MySQL INSERT문을 이용하자!

    아까 작성한 databas_mysql.js를 저부분만 수정해보자. sql문에 INSERT문이 있으므로 데이터를 추가 할 수 있다. 수정 후, 서버를 키자. 

    mysql에서 확인해보면, 정말 데이터가 table에 추가되었다.



    8. node-mysql 3 :  UPDATE & DELETE

    • 데이터 업데이트 - MySQL UPDATE문 이용하자!

    코드를 입력 후, 서버를 키고, mysql에서 확인해보자. title과 author가 변경되었다.


    • 데이터 삭제 - MySQL DELETE문을 이용하자!

    코드를 변경 후, 서버를 키고 , sql에서 확인해보면 정말로 데이터가 삭제된다.


    출처 - 생활코딩, homebrew mysql 설치


    'Front-End > Node.js' 카테고리의 다른 글

    21. HTTP  (0) 2018.10.23
    20. 데이터베이스 - MySQL로 웹애플리테이션 구현  (0) 2018.10.02
    18. 데이터베이스 - 데이터베이스 수업소개  (0) 2018.09.29
    17. 파일업로드  (1) 2018.09.28
    16. 웹애플리케이션 제작  (0) 2018.09.26