Real MySQL
[DB] Real MySQL - 2장
2.3 서버 설정
-
2.3.1 설정 파일의 구성
mysql은 유닉스에서는
my.cnf
, 윈도우에서는my.ini
파일을 이용해 설정된다. -
2.3.2 mysql 시스템 변수
SHOW VARIABLES
,SHOW GLOBAL VARIABLES
명령어로 확인한다.autocommit
,basedir
,date_format
,general-log
등을 확인할 수 있다.Cmd-Line
으로 명령으로 인자를 설정할 수 있는지Option file
으로 my.cnf 설정으로 제어할 수 있는지System Var
으로 시스템 변수인지 등을 알 수 있다. -
2.3.5 my.cnf 설정 파일
/etc/mysql/mysql.conf.d/mysqld.cnf
파일의 bind-address로 접근을 허용할 외부 ip를 지정할 수 있다.이 외에도 port, dir 등의 기본 옵션 뿐만 아니라 스케쥴러, transaction 격리수준, innoDB 플러그인 옵션, plugin-load 설정, innoDB 기본 옵션, MyISAM 옵션, 로깅 옵션, 복제 옵션 등을 설정할 수 있다.
2.5 MySQL 복제 구축
복제 그룹 내에 속한 각 MySQL 서버가 중복되지 않는 server-id 값을 가지고 있어야 하고, 마스터 서버는 바이너리 로그가 활성화돼 있어야 한다. 바이너리 로그의 동기화 방법은 sync_binlog 설정을 사용
SHOW MASTER STATUS
명령어로 binary log 파일명 과 로그 위치 조회
-
2.5.2 복제 계정 준비
CREATE USER 'replica'@'%' identified '1234';
,GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'
복제 계정을 마스터 서버에 생성
-
2.5.3 데이터 복사
MySQL Enterprise backup
이나mysqldump
등을 이용해 데이터를 슬레이브 mySQL에 복사한다.mysqldump -utoor -p --opt --single-transaction --hex-blob --master-data=2 --routines --triggers --all-databases > master_data.sql
--single-transaction
옵션을 주어 테이블이나 레코드 잠금을 걸지 않고 InnoDB 테이블 백업을 할 수 있게 한다.--master-data=2
옵션을 주어 바이너리 로그의 정보를 백업 파일에 같이 기록하게 해준다. ->FLUSH TABLES WITH READ LOCK
-
2.5.4 복제 시작
mysqldump로 백업받은 파일의 헤더에서
CHANGE MASTER~~
를 찾아 복붙해 실행START SLAVE
명령을 통해 복제 시작SHOW SLAVE STATUS
에 표시되는Seconds_Behind_Master
의 상태가 0이 되면 동기화 완료
2.6 권한 관리
사용자 계정 생성 방법과 각 계정 권한 설정 방법을 잘 설정하면 데이터베이스 보안이 유지될 수 있다.
-
2.6.1 사용자의 식별
사용자 계정 뿐만 아니라 사용자의 접속 지점도 계정의 일부가 된다. 사용자 계정 생성 시에 동일한 아이디가 잇으면 서버는 범위가 더 좁은 것을 선택해 생성한다.
-
2.6.2 권한
GRANT ~~ on *.* TO 'user'@'localhost'
와 같은 명령어로 권한 부여