티스토리 뷰
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
'프로그래밍 > Mysql' 카테고리의 다른 글
Windows MySQL UTF-8 설정 (4) | 2018.07.23 |
---|---|
Eclipse에서 JDBC로 MySQL 사용하기 (0) | 2018.07.12 |
- Total
- Today
- Yesterday
- thymeleaf 변수 인식
- @Autowired
- Barycentric coordinates
- @Bean
- spring
- Check point within polygon
- nodejs
- Express
- JavaScript
- 클로저
- Bin
- chunk
- Closure
- MySQL
- spring batch
- @Qualifier
- mybatis
- Tasklet
- thymeleaf cannot resolve
- @Component
- Linux
- npm
- unity
- Bean
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |