mysql DB user 등록 & 기타 명령어
* mysql 계정 등록
//로컬 호스트에서 접속할 경우
// user 는 jhcho 로 세팅하였다.
// password는 jhcho
insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload
_priv, Index_priv, Show_db_priv) values ('localhost', 'jhcho', password('jhcho'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y')
;
//특정한 remote 호스트에서 접속할 경우
// remote jdbc connect 시 현재 최신버전의 함수를 제공하지 않으므로 old 패스워드 함수를 이용하여 계정을 등록해 준다.
insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload
_priv, Index_priv, Show_db_priv) values ('192.168.179.%', 'jhcho', old_password('jhcho'), 'Y','Y','Y','Y','Y','Y','Y','Y',
'Y');
// test_db jhcho 라는 user 등록
insert into db values('localhost', 'test_db', 'jhcho', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y');
* 필수 명령어중
1. mysql root로 로그인시
>mysql -u root -p mysql
> password :
2. database view
mysql>show databases
3. 계정 확인
mysql> select * from user
4. DB 별 상세 정보 확인(접근 가능 계정 정보.)
mysql > select * from db
5. DB 내의 테이블 정보 보기
5.1 다른 DB 로그인시
mysql> use test_db --> test_db 롤 전환
mysql> show tables from test_db --> test_db내의 모든 table 을 본다.
5.2 직접 로그인시
%> mysql -u jhcho -p test_db
%> password:
6. 테이블의 컬럼 정보 보기
mysql> show columns from <테이블명>
or
mysql> desc <테이블명>
7. 테이블 스키마 백업
mysqldump -u <DB User> -p -d <DB> > kaatal_schema.sql
ex>
webmaste@test sql]$mysqldump -u root -p -d test_DB > testDB_schema.sql
8. 외래키 (foreign key)
8.1 foreign key 삭제
ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;
ex>
mysql>alter table coupon_master drop foreign key coupon_master_ibfk_1
참고 사이트 : http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html
8.2 foreign key 추가
ALTER TABLE yourtablename
ADD [CONSTRAINT symbol
] FOREIGN KEY [id
] (index_col_name
, ...)
REFERENCES tbl_name
(index_col_name
, ...)
ex)
mysql>alter table zn_edit_desk add FOREIGN KEY (user_id) REFERENCES zn_kaatalzine (user_id)
8.3 Constraints 보기
SHOW TABLE STATUS FROM db_name
LIKE 'tbl_name
'
9. 파일을 이용한 테이블 생성
mysql -u<DB user> -p<DB Passwd> <DB> < <파일명>
10. 백업 (mysqldump)
10.1 특정 테이블 백업
$ mysqldump -u root -p <DataBase Name> <테이블명> > users.sql
ex )
$ mysqldump -u root -p secret stocksdb users > users.sql
10.2 모든 데이타 베이스 백업
--all-databases 옵션 사용
10.3 테이블 구조만 백업
--no-data 옵션 사용
$ mysqldump -u root -p secret --no-data stocksdb > stocksdb.sql
10.4 데이터만 백업
--no-creeate-info 옵션 사용
$ mysqldump -u root -p secret --no-create-info stocksdb > stocksdb.sql
--------------------------------------------------------------------------------------
* 컬럼의 유형
TYNYINT 부호 있는 정수 -128 ~ 127
부호 없는 정수 0 ~255
1 Byte
SMALLINT 부호 있는 정수 -32768 ~ 32767
부호 없는 정수 0 ~65535
2 Byte
MEDIUMINT 부호 있는 정수 -8388608 ~ 8388607
부호 없는 정수 0 ~16777215
3 Byte
INT 또는 INTEGER 부호 있는 정수 -2147483648 ~ 2147483647
부호 없는 정수 0 ~4294967295
4 Byte
BIGINT 부호 있는 정수 -9223372036854775808 ~ 9223372036854775807
부호 없는 정수 0 ~18446744073709551615
8 Byte
FLOAT 단일 정밀도를 가진 부동 소수점
-3.402823466E+38 ~3.402823466E+38
DOUBLE 2 배 정밀도를 가진 부동 소수점
-1.79769313486231517E+308 ~ 1.79769313486231517E+308
DATE 날짜를 표현하는 유형
1000-01-01 ~ 9999-12-31
DATETIME 날짜와 시간을 표현하는 유형
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP 1970-01-01 00:00:00 부터 2037년 까지 표현
4 Byte
TIME 시간을 표현하는 유형
-839:59:59 ~ 838:59:59
YEAR 년도를 표현하는 유형
1901 년 ~ 2155년
CHAR(M) 고정길이 문자열을 표현하는 유형
M = 1 ~255
VARCHAR(M) 가변길이 문자열을 표현하는 유형
M = 1 ~ 255
TINYBLOB
TINYTEXT 255개의 문자를 저장
BLOB : BINARY LARGE OBJECT의 약자
BLOB
TEXT 63535개의 문자를 저장
MEDIUMBLOB
MEDIUMTEXT 16777215개의 문자를 저장
LONGBLOB
LONGTEXT 4294967295(4Giga)개의 문자를 저장