반응형

 

1.기본 Query 사용방법 터득

 

root 계정으로 로그인

 

TESTDB 라는 데이터베이스 생성됨

 

위에서 만든 TESTDB라는 데이터베이스 삭제됨

 

information_schema 데이터베이스 사용

 

데이터베이스 안에 테이블 목록을 보여줌

 

files 테이블의 구조 확인

 

 

테이블 생성
 

 

테이블안 칼럼의 데이터 추가

 

 

테이블 데이터 검색 (이름으로 검색)

 

 

테이블 데이터 변경하기 /  테이블 안에 모든 내용보기

 

테이블에 있는 레코드 삭제(name = PSY )

 

 

 

 

2. mysql processlist(실시간 세션)확인

mysql 내에서 확인

 

콘솔에서 확인

 

 

3. mysql root 패스워드 분실시 해결방법

 

mysql 설정 파일에 입력(mysql 로그인시 패스워드 묻지 않음)

 

 

설정 변경 하였으므로 재시작

 

mysql root 계정으로 로그인

 

 

mysql 테이블로 접근해서 패스워드 교체

 

변경 후 변경사항 즉시 적용

 

 

위의 skip-grant-tables 지움

 

 

설정 변경했으니 재시작

 

 

바꾼 비밀번호로 로그인

 

 

 

4. slow Query logging 설정 방법 및 로그 보는 법

slow Query loging : sql 질의 요청을 했는데 응답이 오래걸릴 경우 이 부분에 대해 log를 남기는것

 

슬로우 쿼리 로그가 OFF 인것을 확인

 

slow_query_log 의 값을 1로 하면 ON, 0이면 OFF

slow_query_log_file  log 파일이 생성 될 경로

long_query_time=3 은 query실행시간이 3초 이상인 query 에 대해 log 를 남기겠다는 설정

 

 

설정 변경했으니 재시작

 

 

mysql log용 디렉토리 생성 후 디렉토리 접근 권한 설정

 

mysql 접속 후 slow_query ON 확인

 

 

mysql 접속 후 고의로 query 지연 시킴

 

 

로그파일이 생성될 경로에 가서 확인 (로그파일 생성됨)

 

 

로그파일 자세히 보기

 

 

5. mysql dump 사용법

 

mysql dump  ?

데이터베이스를 백업하는 데 가장 자주 사용되므로 데이터 손실시 내용을 복원 할 수 있음

hwlee 계정의 test 테이블 모든 내용 백업

 

 

test.sql 백업 파일 생김

그 외 사용방법

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 설정 확인

 

global 설정 확인

 

세션 환경변수 확인

 

 

LIKE 조건으로 환경변수 찾기

 

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는 누구나 접근 가능한 데이터 베이스)

익명 계정이나 사용하지 않는 계정 삭제(보안을 위해 삭제)

 

 

% 는 localhost가 아닌 원격에서 접속이 가능함

 

 

SELECT/UPDATE/INSERT/DELETE 등의 데이터 베이스 권한 조정

 

 

 

반응형

+ Recent posts