본문 바로가기

개발관련/back-end

MYSQL reference_manual-4.1-en / 관련 쿼리 query

728x90

MYSQL_reference_manual-4.1-en.pdf
17.61MB

#db 변경

use [db명]

 

#현재 사용자가 접근할 수 있도록 권한을 받은 데이터데이스 조회

SHOW DATABASES [LIKE 'pattern']

 

#기본 데이터 베이스 종류

information_schema: 메타데이터가 저장되는 데이터베이스
mysql: 사용자 인증 정보, stored program, 이벤트 정보 등이 저장되는 기본 베이스
performance_schema: 각종 이벤트, 잠금, 잠금 대기 등의 정보를 기록하는 테이블 구조 저장
test: test용 db, 삭제하는 것이 보안상 좋음

 

#현재 접속한 db조회

select database()

 

# db 목록 조회

show databases;

 

# 해당 db 사용

use [해당db];

use sakila;

 

#db생성

create database[또는 schema] [db명] default character set utf8;

create database[또는 schema] testdb default character set utf8;

create database [db명] default character set utf8;

 


사용자 추가 명령어

 

#사용자만 추가

create user [사용자id];

 

#특정 접속 ip 설정

create user  [사용자id]@[특정ip]

 

#비번을 함께 설정 추가(기본은 ‘%’)

create user [사용자id]@localhost identified by ‘[비밀번호]’;

 

#외부에서 접근 허용

create user []@’%’ identified by ‘[비밀번호]’;


사용 권한 부여 명령어

 

#모든 권한 부여하기

#모든 db의 모든 테이블

grant all privileges on *.* to [userid]@host;

 

#해당 db의 모든 테이블

grant all privileges on [db명].* to [userid]@host;

 

#사용자 비밀번호 변경

grant all privileges on [db명].* to [userid]@host identified by ‘[비번]’;

grant all privileges on [db명].* to [userid]@’%’ identified by ‘[비번]’; (모든ip %)

grant select, insert, update privileges on [db명].* to [userid]@host identified by ‘[비번]’;

 

#권한 변경을 적용

flush privileges;

 

#모든 db의 모든 테이블

grant all privileges on *.* to [userid]@host;

 

#권한 제거하기

revoke all on [db명].[테이블명] from [userid];

 

#계정 삭제하기

drop user [userid]@’%’;

 


 

#현재 사용자 확인

select user();

 

#테이블 조회

select * from [테이블명]

select * from [db명].[테이블명]

 

#현재 사용자가 접근할 수 있는 테이블 조회

SHOW OPEN TABLES

 

#현재 db에 있는 테이블 조회

show tables

SHOW TABLES [FROM db_name] [LIKE 'pattern']

(select * from information_schema.tables; v4 에서는 information_schema db가 없음)

 

#해당 db의 테이블 조회

show tables from [db명]

 

-- (만약 information_schema db가 있다면)

#접속한 계정 테이블 조회

select * from information_schema.tables where table_schema = '[db명]'

 

#테이블 생성

create table [테이블명] (

    id int not null,

    title varchar(100) null,

    constraint [테이블명]_pk primary key (id)

)

engine=innoDB

default charset=utf8

collate=utf8_general_ci

 

 

 

 

 


#사용자 계정 조회

select * from user

 

#각 db별 사용자 계정 조회

select * from [db명].user

 

#현재 사용자 조회

select current_user

( = select current_user())

 

-- v5 이상일 경우

#테이블 소유자 조회(schema_name)

select * from information_schema.schema

select * schema_name from information_schema.schema

 

#사용자 계정 등록하기(대소문자 구분)

#v4 일 경우 (The grant statement creates MYSQL user accounts and grants rights to accounts)

#권한으로 사용자를 생성한다.

#DB명이 테이블 소유자

grant [부여할 권한] on [db명].* to '[사용자명]'@'[host]' identified by '[비밀번호]'

예) grant all on [db명].* to '[사용자명]'@'%' identified by '[비밀번호]'

-- (all = 부여할 권한의 종류? 목록?, % = host로 %인 경우 외부접근 허용)

 

 

 


#사용자 권한 조회

SHOW GRANTS FOR '[사용자명]'@'[host]'

-- host 가 %일 경우 외부에서의 접근 허용

예) show grants for 'ka'@'%'

 

#현재 사용자에 대한 권한 조회

show grants

 

#전체 권한 목록 조회

SHOW PRIVILEGES

 

#해당 db의 테이블의 권한 조회

select * from [db명].tables_priv

 

-- (만약 information_schema db가 있다면)

#시스템 권한 조회하기

select * from information_schema.user_privileges

select * from information_schema.schema_privileges

 

#권한 부여하기

-- grant all privileges on *.* to '[사용자명]'@'[host]'

-- 권한을 부여하면서 테이블 생성해야 한다.

grant create on [db명].[테이블명] to '[사용자명]'@'[host]'

grant select, insert, update, delete on [db명].[테이블명] to '[사용자명]'@'[host]'

 

#변경된 권한 적용

flush privileges

 

 


#그 외 show 명령어

 

 

#컬럼조회

#full로 조회하면 collation, privileges, comment 컬럼이 같이 조회된다.

SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE 'pattern']

show (full) columns from [db명].[테이블명];

 

#데이터베이스 만드는 쿼리 조회

SHOW CREATE DATABASE db_name

 

#테이블 만드는 쿼리 조회

SHOW CREATE TABLE tbl_name

show create table [db명].[테이블명];

 

#테이블 상태 조회

SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']

 

 

 

 

 

 

 

 

 

SHOW ENGINE engine_name {LOGS | STATUS }

SHOW [STORAGE] ENGINES

SHOW ERRORS [LIMIT [offset,] row_count]

SHOW INDEX FROM tbl_name [FROM db_name]

SHOW INNODB STATUS

SHOW [BDB] LOGS

SHOW MASTER STATUS

SHOW {BINARY | MASTER} LOGS

SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]

SHOW CHARACTER SET [LIKE 'pattern']

SHOW COLLATION [LIKE 'pattern']

SHOW [FULL] PROCESSLIST

SHOW SLAVE HOSTS

SHOW SLAVE STATUS

SHOW [GLOBAL | SESSION] STATUS [LIKE 'pattern']

SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern']

SHOW WARNINGS [LIMIT [offset,] row_count]