'MySQL'에 해당되는 글 4건

  1. 2013.05.16 MySQL Show 명령어 정리
  2. 2013.04.17 InnoDB 설정
  3. 2011.02.07 mysqldump 간단사용법
  4. 2009.09.14 MySQL 계정 생성 및 계정 권환
2013. 5. 16. 15:28

MySQL Show 명령어 정리

1. show database [like ‘%패턴%”];

 - 현재 접속한 계정의 권한으로 제어가능한 DataBase 목록

 - [like ‘%패턴%”] 옵션으로 패턴 검색 가능

 

2. show [open] tables [from DB] [like ‘%패턴%”];

 - 접속되어 있는 DB(선택한 DB) table 리스트

 - [from db] 옵션으로 DB를 지정하여 실행 가능

 - [like ‘%패턴%”] 옵션으로 패턴 검색 가능

 - open 옵션으로 열려있는 table만 검색 가능

 

3. show index from table [from DB];

 - 선택한 table Index 정보

 - [from db] 옵션으로 DB를 지정하여 실행 가능

 

4. show [full] columns from table [from DB] [like ‘%패턴%”];

 - desc 명령어 같음

 - 선택한 table의 테이블 구조 정보

 - [from db] 옵션으로 DB를 지정하여 실행 가능

 - [like ‘%패턴%”] 옵션으로 패턴 검색 가능

 - [full] 옵션으로 모든 정보 검색 가능

 

5. show table status [from DB] [like ‘%패턴%”];

 - 접속되어 있는 DB안의 모든 table의 상세 정보 표시

 - [from db] 옵션으로 DB를 지정하여 실행 가능

 - [like ‘%패턴%”] 옵션으로 패턴 검색 가능

 - Name : 테이블 이름

 - Engine : 테이블의 Storage Engine

 - Version :테이블의 .frm파일 버전

 - Type : 테이블 타입

 - Row_format : 열저장 형태 (fixed,Dynamic,Compressed)

 - Rows : 열의 수

 - Avg_row_length : 열의 평균 길이

 - Data_length : 데이타파일의 길이

 - Max_data_length : 데이타파일의 최대길이

 - Index_length : 인덱스 파일의 길이

 - Data_free : 사용되지않는 bytes 에 할당된 수

 - Auto_increment : 다음 자동증가 변수

 - Create_time : 테이블이 생성된 시간

 - Update_time : 데이타파일의 마지막 UPDATE 시간

 - Check_time : 테이블의 마지막 체크시간

 - Collation : 테이블의 캐릭트셋과 collation

 - Create_options : 테이블 생성시의 기타옵션

 - Comment : 테이블 생성시의 명령어

 

6. show create database DB;

 - DB 생성 정보

 

7. show create table table;

 - table 생성 정보

 

8. show [storage] engines;

 - MySQL DB Engine들의 정보 및 사용 가능 여부 확인

 

9. show erroes [limit [offset,] row_count];

 - 실행했던 명령어의 error 리스트

 

10. show innodb status;

 - innodb 설정 정보 및 현재 상태 정보

 

11. show [bdb] logs;

 - 로그파일의 상태정보를 출력

 

12. show privileges;

 - 서버가 지원하는 다른 권한 출력

 

13, show [full] processlist;

 - mysql 클라이언트에 연결되어있는 클라이언트의 정보를 출력

 - [full] 옵션으로 현재 실행되고 있는 SQL문 전체 문장 확인 가능, 기본 10자만 표시

 

14. show [global | session] status [like ‘%패턴%”];

 - 현재 MySQL 가동 상태를 알 수 있는 변수값(상태 변수)

 - [like ‘%패턴%”] 옵션으로 패턴 검색 가능

 

15 show [global | session] variables [like ‘%패턴%”];

 - 수치를 조정해서 MySQL의 상태를 제어할 수 있는 변수값(환경 변수)

 - [like ‘%패턴%”] 옵션으로 패턴 검색 가능

Posted by Kimos
2013. 4. 17. 14:31

1. InnoDB 설치

 . configure 시에 “--without-innodb” 옵션을 제거하고 설치

 . “--without-innodb” 옵션 제거 후에도 제대로 설치가 안 될 경우 “--with-innodb” 옵션 추가

 

2. InnoDB 구성

 . 설치 후 /etc/my.cnf 파일을 수정

 . [mysqld] 부분에 아래의 옵션들 추가

[mysqld]

……

innodb_data_home_dir = /usr/local/mysql/data/innordb/

innodb_log_group_home_dir = /usr/local/mysql/data/innordb/

innodb_data_file_path = innordata1:256M:autoextend:max:2000M

innodb_autoextend_increment = 10M

innodb_file_per_table

innodb_buffer_pool_size = 2G

innodb_additional_mem_pool_size = 20M

innodb_flush_log_at_trx_commit = 2

innodb_log_file_size = 512M

innodb_log_buffer_size = 2M

innodb_lock_wait_timeout = 50

innodb_flush_method = O_DSYNC

max_connections = 500

 

 . 옵션 설명

A. innodb_data_home_dir

 : 테이블스페이스 파일의 생성 위치 설정

B. innodb_data_file_path

 : 테이블스페이스 파일 명 및 크기, 옵션 설정

innordata1:256M:autoextend:max:2000M

innordata1라는 파일명으로 생성되고 256MB의 고정크기로 최초 생성되며, 용량이 256MB가 넘을 경우 “autoextend”라는 옵션으로 자동으로 파일 크기가 확장되며, 최대 확장되는 크기는 MAX 옵션의 설정 값만큼 확장

C. innodb_autoextend_increment

 : autoextend 옵션으로 자동 확장되는 크기 지정, 디폴트는 8M

D. innodb_file_per_table

 : 공용 테이블스페이스 사용 대신에 테이블 별 테이블스페이스 사용 옵션

TableName.idb 파일 생성

E. innodb_log_group_home_dir

 : 로그 파일에 대한 디렉토리 경로 설정

F. innodb_buffer_pool_size

 : 자신의 테이블에 있는 데이터와 인덱스를 캐시하기 위해 사용하는 메모리 버퍼의 크기, 이 값을 크게 설정하면 할수록, 테이블에 있는 데이터를 접속하는데 필요한 I/O가 덜 생김, 전체 메모리의 60~80%로 설정

G. innodb_additional_mem_pool_size

: InnoDB가 데이터 디렉토리 정보와 다른 내부 데이터 구조를 저장하기 위해 사용하는 메모리 풀의 크기

H. innodb_flush_log_at_trx_commit

: 자신의 테이블에 있는 데이터와 인덱스를 캐시하기 위해 사용하는 메모리 버퍼의 크기, 이 값을 크게 설정하면 할수록, 테이블에 있는 데이터를 접속하는데 필요한 I/O가 덜 생김, 전체 메모리의 60~80%로 설정

I. innodb_flush_log_at_trx_commit

: commit 을 하였을때 그 즉시 commit 된 데이터를 log file 에 기록할지 안할지를 설정

0 - log buffer내용이 1초 간격으로 로그파일에 쓰여지고 flush, commit시 미동작

1 - log buffer내용이 commit할 때에 로그 파일에 쓰여지고 flush

2 - log buffer내용이 commit할 때에 로그 파일에 쓰여지고 flush 1초 간격으로 동작

J. innodb_log_buffer_size

: InnoDB가 로그 파일을 디스크에 쓰기 위해 사용하는 버퍼의 크기. 사용 가능한 크기는 1~8MB, 디폴트는1MB.

K. innodb_log_file_size

: 로그 파일의 크기 설정, 디폴트는 5MB, 로그 파일은 하나의 파일에 계속 저장되는 것이 아니고 순차적으로 파일이 일정한 크기와 용량으로 순환식으로 생성, innodb_buffer_pool_size 25% 정도로 설정.

L. innodb_lock_wait_timeout

: 트랜젝션의 타임아웃은 롤백이 진행되기 전에 락을 대기하는 시간, 디폴트는 50.

M. innodb_flush_method

: Flush 명령어 방식 설정, 디폴트는 fdatasync.

fdatasync - fsync()를 사용해서 데이터와 로그 파일을 flush

O_SYNC - 로그 파일을 열고 flush하지만, 데이터 파일을 flush하기 위해서는 fsync()를 사용

O_DIRECT - O_DIRECT를 사용해서 데이터 파일을 열고, 데이터 파일과 로그 파일을 flush (몇몇 GNU/Linux 버전에서 사용 가능함)

Windows에서는 flush 방식은 항상 async_unbuffered 사용

N. innodb_thread_concurrency

: InnoDB 내부에 OS 쓰레드의 숫자 설정, 설정된 값과 같거나 적게 유지, 권장하는 값은 여러분이 사용하는 시스템의 프로세스와 디스크의 전체 합, 설정 값의 범위는 0~100.

 

3. InnoDB Table 생성(Default Engine InnoDB가 아닐 경우)

 . Table 생성시

  : InnoDB 테이블을 생성하기 위해서는, CREATE TABLE 명령문에서 ENGINE = InnoDB 옵션을 지정한다:

CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB;

 . MyISAM 테이블을 InnoDB로 변환

: Alter문 사용하여 변경

 ALTER TABLE tablename ENGINE=INNODB; 

Posted by Kimos
2011. 2. 7. 14:57
MySQL에서 DB 및 table을 덤프받기 위해서는 mysqldump를 사용합니다.

$> mysqldump -u[user] -p[password] -h[host] DB명 TABLE명 -w[WHERE절] > 저장파일명.sql

ex>
 $> mysqldump -uKimos -pKimosPW KIMOS > KIMOS.sql
 $> mysqldump -uKimos -pKimosPW KIMOS name -w'name="kimos"' > KIMOS.sql
Posted by Kimos
2009. 9. 14. 18:40

1. 특정 DB만 권환 주기
   GRANT ALL PRIVILEGES ON DB명.*  TO ID@localhost IDENTIFIED BY 'PassWD' WITH GRANT OPTION;

2. 모든 권환 주기
    localhost 접속 시 권한
     GRANT ALL PRIVILEGES ON *.* TO ID@localhost IDENTIFIED BY 'PassWD' WITH GRANT OPTION;
    타 Host 접속 시 권한
     GRANT ALL PRIVILEGES ON *.* TO ID@"%" IDENTIFIED BY 'PassWD' WITH GRANT OPTION;

3. 부분 권환 주기
    GRANT select, insert, delete, update ON *.* TO ID@localhost IDENTIFIED BY 'PassWD' WITH GRANT OPTION;


※ GRANT {권한} ON {DB}.{TABLE} TO {ID}@{HOST} [IDENTIFIED BY 'PASSWD'];

4. 계정생성 후 Flush를 해주어야 함.
   FLUSH PRIVILEGES;

5. 권한 확인
   SHOW GRANTS FOR {ID}@{HOST};

6. 권한 삭제
   REVOKE ALL PRIVILEGES ON *.* FROM ID@"%"; 
   ※ REVOKE {권한} ON {DB}.{TABLE} FROM {ID}@{HOST};


Posted by Kimos