1.기본 Query 사용방법 터득
2. mysql processlist(실시간 세션)확인
3. mysql root 패스워드 분실시 해결방법
4. slow Query logging 설정 방법 및 로그 보는 법
slow Query loging : sql 질의 요청을 했는데 응답이 오래걸릴 경우 이 부분에 대해 log를 남기는것
slow_query_log 의 값을 1로 하면 ON, 0이면 OFF
slow_query_log_file 은 log 파일이 생성 될 경로
long_query_time=3 은 query실행시간이 3초 이상인 query 에 대해 log 를 남기겠다는 설정
5. mysql dump 사용법
mysql dump 란 ?
데이터베이스를 백업하는 데 가장 자주 사용되므로 데이터 손실시 내용을 복원 할 수 있음
그 외 사용방법
mysqldump -u root -p –all-databases > alldatabases.sql
: 모든 데이터를 백업 함
mysqldump -u root -p –all-databases –-no-data> allDDL.sql
: DDL 정보만 백업 함
mysqldump -u root -p –all-databases [DB명] > DB명.sql
: 특정 databases 를 백업 함
6. my.cnf 설정 파일 파악
server-id : MySQL 고유식별값
datadir : 데이터파일이 저장되는 디렉토리
innodb_buffer_pool_size : nnoDB 스토리지 엔진의 버퍼풀은 디스크의 데이터를 메모리에 캐싱함과 동시에 데이터의 변경을 버퍼링하는 역할
innodb_data_home_dir = /var/lib/mysql/idb
: innodb 홈디렉터리 경로를 설정 합니다
innodb_data_file_path = ibdata1:256M:autoextend:max:2000M
: 데이터 파일 옵션을 설정 합니다. 파일명 : 초기용량 : 자동증가 : 최대사이즈
innodb_log_arch_dir = /var/lib/mysql/idb
: 로그 디렉터리 정보
innodb_buffer_pool_size = 2G
: innodb에서 사용할 메모리 양으로 전체 메모리의 50~80% 정도로 설정
innodb_log_file_size = 512M
: 로그 파일 사이즈로 버퍼풀 사이즈의 25% 정도로 설정
innodb_log_buffer_size = 2M
: 로그 버퍼 사이즈로 성능에 맞춰 로그를 기록하는 경우 크게 설정
innodb_flush_log_at_trx_commit = 2
: 커밋 로그 옵션으로 성능 최적화로 1분마다 저장되도록 2로 설정
innodb_flush_method = O_DSYNC
: 성능을 위해 메모리에서 직접 액세스 하도록 설정
log-bin : 로그파일명을 정함
sort_buffer_size : 인덱스를 사용할 수 없는 정렬이나 그룹핑에 메모리 공간을 얼마나 할당할지를 정함
port = 3306
: DB
socket : 소켓파일 경로(로컬서버 접속에 사용)
log-warnings = 3
: 비활성화
log_output = FILE,TABLE
: 로그 기록 유형
log-error
: 에러 로그파일 경로
general_log = OFF
: 제너럴 로그 비활성화 ( DB에서 일어나는 모든 작업에 대한 로그를 남기게 됨)
general_log_file
:제너럴 로그 파일 경로
slow_query_log =on
: 슬로 쿼리 활성화
long_query_time
: 슬로 쿼리 기준 시간
log_queries_not_using_indexes = OFF
: 인덱스를 사용하지 않은 쿼리 기록부여
slow_query_log_file
: 슬로 쿼리 로그 파일 경로
7. mysql global 설정 확인
8. mysql 보안설정
skip-networking : 외부 네트워킹 기능 제한
port=3306 : 기본 포트 3306를 변경하여 무분별한 공격시도 차단
set-vgariable = local-infile =0 : 사용자들이 내부 설정 파일 및 기타 파일에 대한 정보를 얻지 못하도록 차단
--skip-show-database : 사용자에게만 show databases 권한 부여
log = /var/log/mysql.log : 로그 활성화
mysql_secure_installaion 설정에서 변경
root 계정 이름 변경 후 비밀번호 변경
test 데이터 베이스 삭제 (test DB는 누구나 접근 가능한 데이터 베이스)
익명 계정이나 사용하지 않는 계정 삭제(보안을 위해 삭제)