본문 바로가기

Domain/데이터베이스

[데이터베이스] 2. MySQL 기본 - USER, DB, TABLE 생성 (+GRANT;권한)

MySQL

가장 범용적인 오픈소스 데이터베이스로, 관계형 DBMS이다.

 

기본적인 MySQL 기능, 문법

0. MySQL 접속(in Ubuntu)

> MYSQL -u root -p

위 명령어 실행 후 enter시에 -p 옵션에 의해 비밀번호를 입력하라고 한다. 이때, 설정된 비밀번호가 없다면 바로 enter를 누르면 된다.

 

1. 유저 생성

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

 hostname에 %를 사용하면 어느 host나(외부호스트도) 접근이 가능하다.

 

 

2. 유저의 권한 확인 및 권한 부여

SHOW GRANT FOR 'username'@'hostname'; //유저의 권한을 확인
GRANT 권한 ON DB명.TABLE명 TO 'username'@'hostname' (WITH GRANT OPTION); //유저에게 권한 부여

아래는 GRANT문의 예시이다.

GRANT all ON *.* TO 'super'@'localhost' WITH GRANT OPTION;
GRANT SELECT,UPDATE ON classicdb.* TO 'super'@'localhost';

 

3. 데이터베이스 생성, 조회, 사용

CREATE DATABASE 데이터베이스명 default CHARSET SET UTF8;
SHOW DATABASES;
USE 데이터베이스명;

위는 sbs라는 데이터베이스를 만든 결과이다. 이외의 것들은 기본적인 데이터베이스이다. 그리고 USE를 통해 사용할 데이터베이스를 명시하여야한다.

 

 

4. 테이블 생성/조회/수정

CREATE TABLE 테이블명 (
	컬렴명	자료형 ...
    );
    
SHOW TABLES;
CREATE TABLE locationInfo(
	_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREAMENT,
    	latitude DOUBLE NOT NULL,
    	longitude DOUBLE NOT NULL,
    	token VARCHAR(255) NOT NULL,
    	bearing DOUBLE NOT NULL,
    	PRIMARY KEY (_id),
    	UNIQUE KEY uk_name (token)
 ) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

desc는 테이블의 스키마를 보여주는 명령어이다.

 

ALTER TABLE 테이블명 ADD 컬럼명 자료형; #컬럼 추가
ALTER TABLE 테이블명 DROP COLUMN 컬럼명; #컬럼 삭제
ALTER TABLE 테이블명 SET 컬럼명 속성 정의; #컬럼의 속성 정의 변경
ALTER TABLE 테이블명 DROP 컬럼명 속성 정의; #컬럼의 속성의 정의 변경