코드이그나이터4 데이터베이스 다루기 - 1 - 데이터베이스 준비하기

koeunyeon·2021년 3월 28일
0

데이터베이스 준비하기

데이터베이스 접속 준비

데이터를 저장하기 위해 데이터베이스를 준비하겠습니다.
우선 XAMPP Control Panel에서 MySQL 항목이 켜져 있는지 확인합니다. Stop으로 되어 있다면 이미 시작된 것입니다. 시작되어 있지 않다면 Start 버튼을 클릭해서 MySQL 항목을 시작합니다.


PHPStorm에서 데이터베이스에 접속하는 방법을 알아보겠습니다.
PHPStorm의 우측에 보면 Database가 보입니다. 클릭해서 데이터베이스 툴 윈도우를 펼칩니다.

+ 버튼 => Data Source => MariaDB를 차례로 클릭합니다.

데이터베이스 커넥션을 설정하겠습니다.

  • Name 항목을 @localhost에서 @localhost-root로 변경합니다.

  • User 항목을 root로 설정합니다. password(비밀번호) 항목은 비워둡니다.

  • Test Connection 버튼을 누르면 데이터베이스 드라이버가 없다는 알림이 나옵니다. Download Driver Files를 클릭합니다.

곧 드라이버가 다운로드 되고 테스트 커넥션이 성공했다는 메세지가 보이면 OK 버튼을 클릭합니다.

잠시 기다리면 데이터베이스의 항목들을 불러옵니다. 만약 아무것도 보이지 않는다면 리프레시 버튼을 클릭하거나 ctrl + 5 를 눌러 새로고침하세요.


데이터베이스를 생성하겠습니다. 우리가 이번 프로젝트에서 사용할 데이터베이스 이름은 ci4db 로 짓습니다.

@localhost-root를 선택 후 연필 모양을 클릭하거나 ctrl + B를 눌러서 에디터 탭을 열고 아래와 같이 입력합니다.

CREATE DATABASE `ci4db`;

ctrl + 엔터를 눌러 ci4db 데이터베이스를 생성합니다.

우측 데이터베이스 툴 윈도우에 schemas 하위 항목으로 ci4db가 생성된 것을 볼 수 있습니다.

데이터베이스 유저 생성

실무에서는 root 데이터베이스 유저로 데이터베이스에 접속하는 법은 거의 없습니다. root는 모든 것을 다 할 수 있는 유저이기 때문이죠. 따라서 대부분의 경우 데이터베이스 유저 계정을 만들고, 유저 계정이 접근할 수 있는 권한을 줍니다.
우리도 데이터베이스 유저를 생성해 보겠습니다. PHPStorm에서 MySQL이나 MariaDB의 유저를 생성할 때는 비밀번호를 함께 생성할 수가 없으므로 직접 쿼리를 통해 생성하는 방법을 선택합니다.

@localhost-root를 선택 후 연필 모양을 클릭하거나 ctrl + B를 눌러서 쿼리 탭을 열고 아래와 같이 입력합니다.

CREATE USER 'ci4user'@'localhost' IDENTIFIED BY '1234';

ctrl + 엔터를 눌러 쿼리를 실행합니다.

ctrl + F5를 눌러보면 users 탭에 ci4user가 추가된 것을 볼 수 있습니다.

데이터베이스 유저에 권한 추가

유저가 생성되고 비밀번호가 설정되었다고 해서 데이터베이스 유저가 특정 데이터베이스에 접근할 수 있는 것은 아닙니다. 권한이 없기 때문인데요. 우리가 만든 ci4user 데이터베이스 유저가 ci4db에 접근할 수 있는 권한을 부여하겠습니다.

GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES  ON `ci4db`.* TO 'ci4user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

ctrl + 엔터를 눌러 쿼리를 실행합니다.

데이터베이스 테이블 생성

데이터베이스에서 직접 해야 하는 일 중 마지막은 데이터베이스 테이블을 생성하는 것입니다.
우리는 아주 간단하게 이름과 나이를 저장하는 sample 테이블을 생성합니다. 필요한 열은 PK인 sample_id, 이름 name, 나이 age 세개입니다.

기왕 여기까지 직접 쿼리로 했던 것 계속하고 싶은 분은 아래의 쿼리를 입력하세요.

use ci4db;
CREATE TABLE `sample` (
  `sample_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(40) NOT NULL,
  `age` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`sample_id`)
)
COLLATE='utf8mb4_general_ci'
;

schemas - ci4db - sample 테이블이 생성되었음을 볼 수 있습니다.


GUI가 편하신 분은 PHPStorm에서 GUI를 이용할 수 있습니다.
@localhost-root -> schemas -> ci4db 우클릭 => new => table을 차례로 선택합니다.

table name : sample 을 입력합니다.
+ 버튼이나 alt + insert를 누르면 컬럼을 추가할 수 있습니다. 3개를 추가해 놓습니다.

아래 표처럼 컬럼을 설정합니다.

Name | Type | Default | Not null | Auto Inc | Unique | Primary Key
--- | --- | --- | --- | --- | --- | ---
sample_id | BIGINT UNSIGNED | | O | O | X | O
name| VARCHAR(40) | | O | X | X | X
age| VARCHAR(40) | | O | X | X | X

Execute를 클릭하면 테이블이 생성됩니다.

생성된 테이블은 데이터베이스 윈도우에 보여집니다.

profile
스타트업에 관심이 많은 10 + n년차 웹 개발자. 자바 스프링 (혹은 부트), 파이썬 플라스크, PHP를 주로 다룹니다.

0개의 댓글