티스토리 뷰

1. linux 터미널에서 sudo apt-get install mysql-server

설치하다보면 mysql-server 패스워드 설정이 나오니 입력하자.

sudo mysql -p를 터미널에 입력해서 mysql 패스워드를 치고 정상적으로 실행되면 제대로 설치된 것이다.


2. mysql database 생성

CREATE DATABASE test_db default CHARACTER SET UTF8;

test_db라는 이름의 데이터베이스를 만든다. character set을 utf8로 둠으로써 한글을 사용할 수 있다.


3. database 목록보기

mysql 터미널에서 show databases;


4. database에 사용자 추가 및 접속

GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost' IDENTIFIED BY 'test';
EXIT;
mysql -u test_user -p
USE test_db;

GRANT는 사용자에게 database 사용 권한을 적용하는 명령어다.


ALL PRIVILEGES는 database에 대한 모든 권한이다.


ON test_db.*는 test_db의 모든 테이블에 대한 것임을 나타낸다.


TO 'test_user'@'localhost'는 test_user라는 id의 유저에게 local에서만 접속할 수 있도록 하는것이다. 만약 모든곳에서 접속하게 하고 싶다면 'test_user'@'%'로 하자. 특정 아이피는 'test_user'@'xxx.xxx.xxx.xxx'로 설정한다.


IDENTIFIED BY 'test'는 사용자의 password를 test로 설정하는 것이다.


EXIT;는 현재 연결된 mysql을 닫는 것이다. 


mysql -u test_user -p는 test_user라는 id로 로그인을 하는 것이다. 입력하고 난 뒤 비밀번호를 요구하므로 아까 설정한 test를 입력한다.


USE test_db;는 현재 로그인한 사용자가 test_db를 사용한다는 것이다. (사용자는 여러개의 database를 사용할 수 있다.)


5. table 생성

CREATE TABLE user
(
     uid BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
     id VARCHAR(256) NOT NULL,
     pw VARCHAR(64) NOT NULL,
     date DATETIME DEFAULT CURRENT_TIMESTAMP,
     mod_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
     nickname VARCHAR(64),
     PRIMARY KEY(uid),
     UNIQUE KEY(id),
     UNIQUE KEY(nickname)
) ENGINE=INNODB;
DESCRIBE user;

user라는 이름의 테이블을 생성한다.


그 후 칼럼들에 대한 내용이 나열된다.

첫 째줄부터 보면 uid라는 이름의 column을 추가한다. 자료형은 BIGINT UNSIGNED이다. NOT NULL은 자료를 입력할 때 항상 값을 넣어줘야 함을 의미한다. AUTO_INCREMENT는 자료를 추가할때마다 자동으로 인덱스 증가함을 의미한다.


id, pw는 문자열 256, 64자 제한으로 정의되어있다.


date는 자료형이 DATETIME이고 DEFAULT는 아무런 값을 입력하지 않을 때 자동으로 입력되는 값이다. 여기선 현재 시간(CURRENT_TIMESTAMP)로 설정돼있다.


mod_date같은 경우 DEFAULT가 CURRENT_TIMESTAMP이고, 업데이트 시 CURRENT_TIMESTAMP를 입력하는 것으로 설정돼있다.


PRIMARY KEY(uid)는 uid를 primary key로 설정하는 것이다. primary key는 table 당 하나의 column에만 설정될 수 있다. primary key로 등록된 column은 중복된 값을 가질 수 없다.


UNIQUE KEY(id)는 id를 unique key로 설정하는 것이다. unique key로 지정된 column은 중복된 값을 가질 수 없다. table 내 여러개의 column에 지정할 수 있다.


ENGINE_INNODB;는 데이터 저장 구조를 선택한다는데 더 찾아봐야한다.


DESCRIBE user;는 user table의 구조를 확인할 때 사용하는 명령어다. 줄여서 desc user;만 입력해도 된다.




mysql 데이터 타입은 아래 링크에서 살펴보자.

http://ra2kstar.tistory.com/82



참고: http://futurists.tistory.com/11

'프로그래밍 > Mysql' 카테고리의 다른 글

Windows MySQL UTF-8 설정  (4) 2018.07.23
Eclipse에서 JDBC로 MySQL 사용하기  (0) 2018.07.12
Mysql 설치 및 데이터베이스 생성  (0) 2018.01.23
댓글
댓글쓰기 폼