본문 바로가기
[ Programming ] Project/React JS CRUD with Spring Boot

[리액트, 스프링부트 연동하여 CRUD 구현] #9 - MySQL에서 Database와 Table 생성하기 (9/10)

by the_little_coder 2020. 1. 22.

리액트, 스프링부트 연동하여 CRUD 구현

#9 - MySQL에서 Database와 Table 생성하기



MySQL에서 스프링부트와 연동할 Database와 Table을 생성하도록 하겠습니다. 저는 mac에서 homebrew를 통해 MySQL을 설치했습니다. mac에서 MySQL을 실행할 때 서버를 수동으로 열고 닫아야 하더라구요. 터미널에서 아래 명령어로 서버를 실행하겠습니다. 윈도우에서는 안해주셔도 됩니다.



$ mysql.server start



서버가 실행됐나요? 그렇다면 application.properties 파일에서 작성한 username과 password값으로 MySQL에 접속하겠습니다. 저는 application.properties 파일에서 username을 root로 적었고, password는 적지 않았습니다. password가 없는 이유는 MySQL을 설치할 당시 root계정에 비밀번호를 설정하지 않았기 때문입니다. 이제 root계정으로 MySQL에 접속하겠습니다.



$ mysql -u root



비밀번호가 있다면 이렇게 명령합니다.



$ mysql -u root -p [비밀번호]



아시겠지만 -u는 username을 의미하며 옆에 root는 계정명을 의미합니다. -p는 password를 의미하며 해당 계정 비밀번호를 [비밀번호]에 입력해주면 됩니다. 


이제 root 계정에 데이터베이스를 생성하겠습니다. 우리는 이전에 application.properties 파일에서 우리가 사용할 database명을 적었습니다. 기억나시나요? 네, 'jdbc:mysql://localhost:3306/' 바로 뒤에 test_crud라고 적었습니다. 지금 접속해있는 root 계정에서 먼저 같은 이름의 데이터베이스가 있는지 조회해볼까요?



mysql> show databases;




mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

| testdb             |

+--------------------+

5 rows in set (0.01 sec)




중복되는 이름이 없기에, 바로 test_crud 이름으로 데이터베이스를 생성하겠습니다. 그리고 잘 생성됐는지 조회해보겠습니다.



mysql> CREATE DATABASE test_crud default CHARACTER SET UTF8;

mysql> SHOW DATABASES;




mysql> CREATE DATABASES test_crud default CHARACTER SET UTF8;

Query OK, 1 row affected, 1 warning (0.01 sec)


mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test_crud          |

| testdb             |

+--------------------+

6 rows in set (0.00 sec)




문제가 없다면 테이블을 생성하겠습니다. 테이블을 생성하기 위해서 테이블이 데이터베이스 안에 있어야 합니다. 아직 MySQL에서 어떤 데이터베이스를 사용할지 선택을 하지 않았습니다. test_crud 데이터베이스를 선택하고 사용하겠습니다.



mysql> use test_crud;



제대로 선택이 되면 "Database changed"라는 문구가 뜹니다. 이제 테이블을 생성하겠습니다.




mysql> CREATE TABLE users(

        id int NOT NULL AUTO_INCREMENT,

        username varchar(10),

        password varchar(12) NOT NULL,

        firstName varchar(10),

        lastName varchar(10),

        age tinyint,

        salary int,

        PRIMARY KEY(id)

       );

Query OK, 0 rows affected (0.01 sec)




테이블이 제대로 생성되었다면 "Query OK, 0 rows affected" 란 문구가 뜹니다. 그리고 우리가 입력한대로 테이블이 생성되었는지 데이터베이스 내 테이블 목록을 확인하고, 해당 테이블 정보를 확인합니다.



mysql> show tables;

mysql> desc users;




mysql> show tables;

+---------------------+

| Tables_in_test_crud |

+---------------------+

| users               |

+---------------------+

1 row in set (0.00 sec)


mysql> desc users;

+-----------+-------------+------+-----+---------+----------------+

| Field     | Type        | Null | Key | Default | Extra          |

+-----------+-------------+------+-----+---------+----------------+

| id        | int(11)     | NO   | PRI | NULL    | auto_increment |

| username  | varchar(10) | YES  |     | NULL    |                |

| password  | varchar(12) | NO   |     | NULL    |                |

| firstName | varchar(10) | YES  |     | NULL    |                |

| lastName  | varchar(10) | YES  |     | NULL    |                |

| age       | tinyint(4)  | YES  |     | NULL    |                |

| salary    | int(11)     | YES  |     | NULL    |                |

+-----------+-------------+------+-----+---------+----------------+

7 rows in set (0.01 sec)




마지막으로 테이블에 데이터를 넣어보겠습니다. 그리고 데이터가 잘 입력되었는지 확인하겠습니다



mysql> INSERT INTO users(username, password, firstName, lastName, age, salary) VALUES("피카츄", "1234", "kachu", "pi", 1, 100000);

mysql> SELECT * FROM users;




mysql> INSERT INTO users(username, password, firstName, lastName, age, salary) 

       VALUES("피카츄", "1234", "kachu", "pi", 1, 100000);

Query OK, 1 row affected (0.00 sec)


mysql> select * from users;

+----+-----------+----------+-----------+----------+------+--------+

| id | username  | password | firstName | lastName | age  | salary |

+----+-----------+----------+-----------+----------+------+--------+

|  1 | 피카츄      | 1234     | kachu     | pi       |    1 | 100000 |

+----+-----------+----------+-----------+----------+------+--------+

1 row in set (0.00 sec)




잘 들어가네요. 마지막으로 스프링부트에서 연결이 잘 되는지 확인하겠습니다. STS4를 열어 서버를 실행하세요. 왼쪽 밑에 Boot Dashboard에서 프로젝트를 선택 후 실행하면 됩니다.







실행이 잘 된다면 MySQL과 성공적으로 연결된겁니다. 이제 MySQL을 종료하면서 마무리하겠습니다. 윈도우에서 서버종료 명령은 안해도 됩니다.



mysql> exit

mysql> mysql.server stop




mysql> exit

Bye

~ corini$ mysql.server stop

Shutting down MySQL

.. SUCCESS!




댓글