- 인쇄
- PDF
MySQL 사용 가이드
- 인쇄
- PDF
시작하기 전에
MySQL 설치형 서비스 관리
MySQL 설치형 서비스에서 관련되는 관리 방법을 설명합니다.
MySQL 이미지 서버 생성
MySQL이 설치된 인스턴스 서버를 생성하면 아래와 같이 네이버 클라우드 플랫폼에 표준화된 my.cnf의 환경을 가진 MySQL Daemon이 Startup되어 생성된 후 Daemon 기동까지 완료된 후 제공됩니다.
my.cnf
my.cnf의 파라미터(Parameter) 설명은 아래와 같습니다.
속성 | 설명 |
---|---|
expire_logs_days = 7 | log-bin으로 설정된 로그 크기가 커지는 것을 방지하기 위해 7일간 저장하도록 합니다. |
innodb_file_per_table | InnoDB 테이블 생성 시 InnoDB Global Tablespace를 사용하면, 테이블 삭제 시 이미 늘어난 물리 크기는 줄어들지 않습니다. innodb_file_per_table 옵션을 사용하면 InnoDB 테이블 생성 시 테이블당 파일을 생성하고 테이블 삭제 시 해당 파일이 삭제되어 물리 공간을 확보할 수 있습니다. |
innodb_log_file_size | Heavy Traffic이 들어오는 경우 CheckPoint로 인한 병목을 방지하기 위해 innodb_log_file_size 옵션을 늘립니다. Variables을 조정하기 위해서는 DB Restart가 필요함. |
iinnodb_log_files_in_group | innodb_log_file의 개수를 지정합니다. Rotation을 위해 2개 이상을 권고합니다. |
default_storage_engine | Online-DDL 및 Transction 사용이 가능한 InnoDB로 표준 지정합니다. |
query_cache_type query_cache_size | DB 기동 후 query_cache를 사용자가 동적으로 ON/OFF할 수 있도록 ON/0으로 설정합니다. 이후 서비스 상황에 맞도록 조정합니다. |
sysdate-is-now | sysdate를 사용하는 경우 Replication 구성에서 Master-Slave 간의 데이터 처리 시간이 다를 경우 Time Type 데이터가 다를 수 있어 sysdate의 경우 자동으로 now를 replace합니다. |
log_timestamps = SYSTEM(5.7 only) | MySQL 5.7에서 LogTime이 UTC으로 되어있어 SYSTEM Local TIME으로 변경합니다. |
MySQL 설치된 디렉터리는 아래와 같습니다.
속성 | 설명 |
---|---|
DATADIR | /var/lib/mysql/ |
SLOW_LOG | /var/lib/mysql/*slow.log |
ERROR_LOG | /var/log/mysqld.log - CentOS /var/log/mysql/error.log - Ubuntu |
my.cnf | /etc/my.cnf - CentOS /etc/mysql/my.cnf - Ubuntu. |
sqlstatus_nCloud | /usr/bin/sqlstatus_nCloud |
가입 절차
MySQL을 사용하려면 네이버 클라우드 플랫폼[Financial]에서 제공하는 콘솔 및 리소스 등을 이용하기 위해 네이버 클라우드 플랫폼의 계정이 필요합니다.
네이버 클라우드 플랫폼[Financial]에 가입하면 모든 서비스를 이용하실 수 있으며, 사용한 서비스에 대해서만 요금이 청구됩니다.
이미 계정이 있는 경우에는 해당 단계를 건너뛸 수 있습니다.
- 포털로 이동합니다.
- 오른쪽 상단에 [회원가입] 버튼을 클릭하여 [회원가입] 페이지로 이동합니다.
- 서비스 이용 약관 및 개인정보수집이용에 대한 안내 문구를 확인하고 동의합니다.
- 법인 및 담당자 정보를 입력합니다.
- 결제수단은 직접입금과 자동이체를 선택하실 수 있습니다.
- 가입한 ID/PW를 통해 로그인하고 결제수단 선택 및 등록을 완료합니다.
- 담당자의 가입정보 및 금융회원여부 검증 후 승인이 완료되면 SSL VPN 계정이 발급되어 메일로 전송됩니다.
- SSL VPN Client 접속 툴을 설치하고 실행하여, 발급된 SSL VPN 계정으로 로그인합니다.
- Financial 콘솔은 Financial 포털에 로그인하여 Console 버튼을 클릭하거나, 도메인(
www.fin-ncloud.com
)을 직접 입력하여 접속 후 사용가능합니다.
서버 생성하기
콘솔 접속
- 콘솔에 접속하여 Services > Compute > Server 메뉴로 이동합니다.
- 서버를 생성하려면 [서버 생성] 버튼을 클릭합니다.
서버 이미지 선택
- 목록에서 OS Version에 해당하는 MySQL Version을 체크한 후 하단의 [다음] 버튼을 선택합니다.
서버 설정
- 원하는 VPC를 선택합니다.
- 원하는 Subnet을 선택합니다.
- 원하는 서버 타입을 선택합니다.
- 일부 서버 스펙은 부팅 디스크 타입에 따라 지원되지 않을 수 있습니다.
- 필요한 목적에 따라 Compact와 Standard 서버 타입을 선택하세요.
- 요금제는 월요금제 또는 시간 요금제 중 선택할 수 있습니다.
- 서버 이름을 입력합니다.
- 고객이 서버를 구별하기 위한 명칭으로, 중복해서 사용할 수 없습니다.
- Network Interface를 추가합니다.
- 서버 설정을 마친 후 [다음] 버튼을 클릭합니다.
인증키 설정
[새로운 인증키 생성]
- 새로운 인증키 생성을 선택합니다.
- 인증키 이름을 입력합니다.
- [인증키 생성 및 저장] 버튼을 클릭합니다.
- 새로운 인증키를 발급받습니다.
- 저장 후 인증키는 고객의 PC 안전한 위치에 보관해주세요.
- 인증키는 최초의 관리자 비밀번호를 가져올 때 이용됩니다.
- 다음 버튼을 클릭합니다.
[보유하고 있는 인증키 이용]
- 보유하고 있는 인증키 이용을 선택합니다.
네트워크 접근 설정
ACG(Access Control Group)를 생성하거나 보유하고 있는 ACG를 선택합니다.
최종 확인
설정한 내용을 최종 확인합니다.
- 서버 이미지, 서버, 인증키, 네트워크, ACG가 정상적으로 설정되었는지 확인합니다.
- 최종 확인 후에는 서버 생성 버튼을 클릭합니다.
- 서버가 생성되기까지는 수 분이 소요됩니다.
생성한 서버를 리스트에서 확인합니다. 생성한 서버가 목록에 표시됩니다.
(설명 추가 - 어떤 내용을 확인할 수 있는지 설명)
접속 환경 설정하기
SSL VPN 접속
Financial Cloud의 서비스를 사용하기 위해서는 필수적으로 SSL VPN을 접속해야만 합니다. SSL VPN을 사용하기 위해서는 아래와 같이 수행해야합니다. 자세한 사항은 네이버 클라우드 플랫폼의 SSL VPN 가이드를 참고 부탁 드립니다.
콘솔에 접속하여, Services > Security > SSL VPN 메뉴로 이동합니다.
SSL VPN 생성 버튼을 클릭합니다.
스펙 및 인증 방식을 선택합니다.
인증 방식에 따라 사용자를 설정합니다.
서버 접속하기
서버 관리자 비밀번호 확인하기
- 서버 목록에서 접속하려는 서버를 선택하고, 서버 관리 및 설정 변경의 관리자 비밀번호 확인을 클릭합니다.
- 마우스로 파일을 끌고 오거나 여기를 클릭하세요. 버튼을 통해 서버 생성 시에 등록한 인증키 파일을 첨부합니다.
- 서버 생성 시에 다운로드한 인증키 파일은 안전한 위치에 보관하시기 바랍니다.
- 비밀번호 확인 버튼을 클릭하면 첨부된 파일에서 비밀번호 가져오기를 실행합니다.
- 서버 이름, 관리자, 비밀번호를 확인하고 확인 버튼을 클릭합니다.
ACG 설정
MySQL이 설치된 인스턴스 서버에 접근할 수 있도록 DB 서버의 ACG를 설정합니다.
- 웹 서버 또는 응용 애플리케이션에서 DB 서버에 접근하려면 접근을 원하는 서버 IP 주소 또는 서버가 속한 ACG를 MySQL 서버 이미지와 함께 생성된 ACG에 추가해야 합니다.
- ssh 로 서버 접근을 위해서는 22 포트를 허용해야 합니다.
- MySQL 접속을 위해선 3306 포트를 허용해야 합니다.
- 자세한 ACG 설정 및 접근 방법은 ACG 사용 가이드를 참고해 주십시오.
터미널을 통한 서버 접속
터미널 프로그램을 사용하여 아래와 같이 접속합니다.
- PORT: 포트번호
- 패스워드: 관리자 비밀번호에 출력된 패스워드(초기 패스워드는 반드시 변경합니다.)
ssh -p [PORT] root@[공인IP]
서버 이미지 생성 이후
- 서버 생성 이후 바로 사용하지 않을 경우 보안 위험을 예방하기 위해 MySQL Daemon을 Shutdown합니다.
- 생성된 MySQL의 경우 패스워드가 설정되지 않았기 때문에 반드시 패스워드 설정을 합니다.
MySQL 기동 정지 및 접속 절차
- MySQL Daemon 기동 및 정지는 아래와 같은 명령어로 실행합니다.
- CentOS
shell> /sbin/service mysqld start
shell> /sbin/service mysqld stop
- Ubuntu
Shell> /usr/sbin/service mysql start
Shell> /usr/sbin/service mysql stop
- CentOS
- MySQL Daemon 구동 유무는 아래와 같은 명령어로 확인합니다.
Shell> ps -ef | grep mysqld
- 결과: mysqld/mysqld 프로세스가 보여야 합니다.
- 네이버 클라우드 플랫폼에서 생성한 MySQL은 아래 명령어로 접속합니다.
Shell> mysql -uroot
- MySQL Password 정책에 따라 초기 패스워드는 지정되지 않습니다.
- root Password의 경우 설정하지 않으므로 보안 침해 방지를 위해 최초 접속 시 반드시 패스워드 변경을 합니다.
- root 패스워드는 아래 명령어로 사용하여 변경합니다.
- MySQL 5.6
mysql> set password=password('패스워드');
- MySQL 5.7
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '패스워드';
- MySQL 5.6
- MySQL Built-in Password 기본 정책은 아래와 같습니다.
- 최소 길이 8자 이상
- 특수문자 1개 이상
- 숫자 1개 이상
- 대소문자 조합 1개 이상
MySQL 이미지 서버 반납
네이버 클라우드 플랫폼에서 MySQL이 생성된 서버 반납 시 아래와 같은 절차 이후 반납하기를 권장합니다.
- MySQL에서 저장한 데이터 백업
- 백업된 데이터의 경우 Download이후 별도 보관
- MySQL Daemon 정지
- mysql이 저장된 Data Directory 삭제
- 예: rm ‐rf /var/lib/mysql
- 네이버 클라우드 플랫폼 콘솔에서 [정지] > [반납] 순서로 선택하여 반납을 진행합니다.
MySQL 외부접속 허용
Ubuntu에서 MySQL을 사용하는 경우 Default Parameter로 인해 Localhost에서만 접속이 가능합니다.
이에 외부접속이 가능하도록 아래와 같은 예로 가이드합니다.
- MySQL DB 접속
- 계정 권한 부여
예: GRANT ALL PRIVILEGES ON . to '계정명'@'%' IDENTIFIED BY '비밀번호'; - 환경파일 수정
예: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf - bind-address 주석처리
# By Default we only accept connections from localhost
# bind-address = 127.0.0.1
- MySQL 재시작
SQLSTATUS
네이버 클라우드 플랫폼에서 제공하는 MySQL 서비스에는 CLI(Command Line Interface) 형태의 모니터링 프로그램이 제공됩니다.
- 해당 프로그램 nCloud 서버 이외에 외부 유출 및 임의로 변경이나 변조하는 경우를 금지하고 있습니다.
개요
MySQL의 내부 Status를 1초 단위로 볼 수 있도록 Binary 형태로 제공합니다.
1초간의 MySQL Status를 Display를 하여 Real-Time으로 DB의 상태 변화를 볼 수 있습니다.
사용법
sqlstatus_nCloud에서 사용할 계정 생성(Default 계정으로 포함)
GRANT PROCESS, SHOW DATABASES, SUPER, EXECUTE, REPLICATION CLIENT ON *.* TO 'sqlstatus_ncloud'@'127.0.0.1' IDENTIFIED BY PASSWORD '*AB9C7542BD3FE96F5342F2A616D030CF4494EB44';
설치 경로 : /usr/bin/sqlstatus_nCloud
기본 3306 포트 사용 시 : sqlstatus_nCloud
3306 이외 사용자 Port 사용 시 : sqlstatus_nCloud 포트번호
사용하지 않을 경우 Default 계정을 삭제해도 됩니다.(DROP USER sqlstatus\_ncloud@127.0.0.1;
)
사용자 화면
모니터링 항목 설명
속성 | 설명 |
---|---|
Port | sqlstatus_nCloud에서 접속하는 DB 포트정보. |
Time | 모니터링 시간. |
Conn | 현재 DB에 접속하는 Connection Count |
Run | DB에 Running 중인 Thread Count 현재 DB에서 쿼리를 처리하는 Thread 수를 나타냅니다. |
Abort | DB에 접속 실패하는 Count max_connection 수를 초과하거나, DB 계정테이블에 등록되지 않는 사용자가 접속할 때 수를 표시합니다. |
Select | DB에서 처리하는 SELECT Count |
Update | DB에서 처리하는 UPDATE Count |
Insert | DB에서 처리하는 INSERT Count |
Delete | DB에서 처리하는 DELETE Count |
Replace | DB에서 처리하는 REPALCE Count |
Qcache | Query Cache를 통해 처리하는 쿼리 Count |
Call | Procedure/Function을 사용하여 처리하는 쿼리 Count |
QPS | DB에서 처리된 쿼리의 Total Count |
Slave | Replication 구성된 SlaveDB의 복제지연 시간 Replication이 아닐 경우 Default 0으로 표시 |
user | CPU normal processes executing in user mode |
system | CPU processes executing in kernel mode |
iowait | CPU waiting for I/O to complete |
Slow_queries | long_query_time에 지정된 수보다 오래 실행되는 쿼리 Count |
Sum | sqlstatus를 실행한 이후 발생된 SlowQuery Count Default Parmeter는 10초이며 아래명령어로 변경이 가능합니다. (단위 Sec) mysql> set global long_query_time=1 |