• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 1. MySQL 프로그램 개요
    2. MySQL 프로그램 사용
    3. MySQL 서버와 서버 시작 프로그램
    4. 설치 관련 프로그램
    5. 클라이언트 프로그램
    1. mysql - MySQL 명령 행 도구
    2. mysqladmin - MySQL 서버를 관리하는 클라이언트
    3. mysqlcheck - 테이블 관리 프로그램
    4. mysqldump - 데이터베이스 백업 프로그램
    5. mysqlimport - 데이터 가져 오기 프로그램
    6. mysqlshow - 데이터베이스, 테이블 및 컬럼 정보보기
    7. mysqlslap - 부하 에뮬레이션 클라이언트
    6. MySQL 관리 프로그램 및 유틸리티 프로그램
    7. MySQL 프로그램 개발 유틸리티
    8. 기타 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

4.5.3 mysqlcheck - 테이블 관리 프로그램

mysqlcheck 클라이언트는 테이블의 유지 보수 (테이블 검사, 복구, 최적화, 분석)을 수행합니다.

각 테이블은 처리 중에 잠겨 있기 때문에 다른 세션에서 사용할 수 없습니다. 그러나 검사 작업 테이블은 READ 잠금에만 잠겨 있습니다 ( READ 잠금 및 WRITE 잠금 자세한 내용은 섹션 13.3.5 "LOCK TABLES 및 UNLOCK TABLES 구문" 을 참조하십시오). 테이블의 보수 작업은 특히 큰 테이블에서는 시간이 오래 걸릴 수 있습니다. --databases 옵션 또는 --all-databases 옵션을 사용하여 하나 이상의 데이터베이스에 포함 된 모든 테이블을 처리하는 경우, mysqlcheck의 호출에 시간이 오래 걸릴 수 있습니다. (mysql_upgrade에 대해서도 마찬가지입니다 만, 이것은이 프로그램이 mysqlcheck를 호출하여 모든 테이블을 검사하고 필요한 경우 복구하기 때문입니다.)

mysqlcheck의 기능은 myisamchk와 비슷하지만 다른 방식으로 동작합니다. 주요 운영 방법의 차이점은 mysqlcheck는 mysqld 서버가 실행 중일 때 사용되어야한다 반면, myisamchk는이 서버가 실행되고 있지 않을 때 사용되어야한다는 점입니다. mysqlcheck를 사용하는 이점은 테이블의 유지 보수를 위해 서버를 중지 할 필요가없는 것입니다.

mysqlcheck는 SQL 문 CHECK TABLE , REPAIR TABLE , ANALYZE TABLE 및 OPTIMIZE TABLE 을 사용자에게 유용한 방법으로 사용합니다. 수행 할 작업에 대해 어떤 문을 사용하기로 결정하고 실행을 위해 서버에 문을 보냅니다. 각 문이 어떤 스토리지 엔진 작동하는지는 섹션 13.7.2 "테이블 유지 보수 문" 문에 대한 설명을 참조하십시오.

MyISAM 스토리지 엔진은 4 개의 유지 보수 작업을 모두 지원하고 있기 때문에, mysqlcheck를 사용하면 MyISAM 테이블에 대해 그 어떤 보수 작업을 수행 할 수 있습니다. 다른 스토리지 엔진은 반드시 모든 작업을 지원하고 있지는 않습니다. 그런 경우 오류 메시지가 표시됩니다. 예를 들어, test.t 가 MEMORY 테이블의 경우 검사하려고하면 다음과 같은 결과가 생성됩니다.

 shell> mysqlcheck test t
 test.t
 note : The storage engine for the table does not support check

mysqlcheck 테이블을 복구 할 수없는 경우 수동으로 테이블을 복구하는 방법은 섹션 2.11.4 "테이블 또는 인덱스를 다시 만들거나 복구" 를 참조하십시오. 예를 들어, InnoDB 테이블이 여기에 해당합니다. 이 테이블은 CHECK TABLE 에서 검사 할 수 있지만 REPAIR TABLE 에서 복구 할 수 없습니다.

주의

테이블의 복구 작업을 수행하기 전에 테이블을 백업하는 것이 좋습니다. 상황에 따라이 작업을 위해 데이터 손실이 발생할 수 있습니다. 가능한 원인으로는 파일 시스템의 오류 등이 있지만 이에 국한되지 않습니다.

일반적으로 mysqlcheck를 시작하려면 세 가지 방법이 있습니다.

 shell> mysqlcheck [ options ] db_name [ tbl_name ...]
 shell> mysqlcheck [ options ] --databases db_name ...
 shell> mysqlcheck [ options ] --all-databases

db_name 다음에 테이블을 지정하지 않는 경우, 또는 --databases 옵션 또는 --all-databases 옵션을 사용하는 경우 전체 데이터베이스가 검사됩니다.

다른 클라이언트 프로그램에 비해 mysqlcheck는 특별한 기능이 있습니다. 테이블 검사의 기본 동작 ( --check )은 바이너리의 이름을 변경하여 바꿀 수 있습니다. 디폴트로 테이블을 복구하는 도구가 필요한 경우 mysqlrepair라는 이름으로 mysqlcheck의 사본을 만들거나 mysqlrepair라는 이름으로 mysqlcheck에 대한 심볼릭 링크를 작성하십시오. mysqlrepair를 시작하면 테이블이 복구됩니다.

다음 표에 나와있는 이름은 mysqlcheck의 디폴트 동작을 변경하는 데 사용할 수 있습니다.

명령 의미
mysqlrepair 기본 옵션은 --repair
mysqlanalyze 기본 옵션은 --analyze
mysqloptimize 기본 옵션은 --optimize

mysqlcheck는 다음 옵션을 지원합니다. 이들은 명령 행 또는 옵션 파일의 [mysqlcheck] 그룹과 [client] 그룹에 지정할 수 있습니다. MySQL 프로그램에서 사용되는 옵션 파일에 대한 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.

표 4.7 mysqlcheck 옵션

형식 설명 도입
--all-databases 데이터베이스의 모든 테이블을 확인
--all-in-1 각 데이터베이스에 대해 데이터베이스의 모든 테이블을 지정하는 단일 명령문을 실행
--analyze 테이블을 분석
--auto-repair 확인 된 테이블이 손상된 경우 자동으로 복구
--bind-address 지정된 네트워크 인터페이스를 사용하여 MySQL 서버에 연결 5.6.1
--character-sets-dir 문자 세트가 설치되어있는 디렉토리
--check 테이블에 오류가 없는지 확인
--check-only-changed 마지막에 행해진 검사 이후에 변경된 테이블 만 체크
--check-upgrade CHECK TABLE를 FOR UPGRADE 옵션으로 호출
--compress 클라이언트와 서버간에 전송되는 정보를 압축
--databases 지정된 데이터베이스의 모든 테이블을 처리
--debug 디버깅 로그를 작성한다
--debug-check 프로그램이 종료 될 때 디버깅 정보를 출력
--debug-info 프로그램 종료시 디버그 정보, 메모리 및 CPU 통계를 출력
--default-auth 사용하는 인증 플러그인 5.6.2
--default-character-set 기본 문자 집합을 지정
--defaults-extra-file 일반 옵션 파일 이외에 옵션 파일을 읽을
--defaults-file 지명 된 옵션 파일 만 읽을
--defaults-group-suffix 옵션 그룹의 접미사 값
--extended 테이블을 체크하고 복구
--fast 제대로 닫히지 않은 테이블 만 확인
--fix-db-names 데이터베이스 이름을 5.1 형식으로 변환
--fix-table-names 테이블 이름을 5.1 형식으로 변환
--force SQL 오류가 발생해도 계속
--help 도움말 메시지를 표시하고 종료
--host 지정된 호스트에서 MySQL 서버에 연결
--login-path 로그인 경로 옵션을 .mylogin.cnf에서 읽기 5.6.6
--medium-check --extended 조작보다 빠른 검사를 실행
--no-defaults 옵션 파일을 읽지
--optimize 테이블을 최적화
--password 서버에 연결할 때 사용하는 비밀번호
--pipe Windows에서 명명 된 파이프를 사용하여 서버에 연결
--plugin-dir 플러그인이 설치되어있는 디렉토리 5.6.2
--port 연결에 사용하는 TCP / IP 포트 번호
--print-defaults 기본 출력
--protocol 사용하는 연결 프로토콜
--quick 빠른 체크 방법
--repair 고유 아니라 고유 키 이외의 거의 모든 문제를 해결 할 수있는 복구를 실행
--secure-auth 오래된 (4.1.1 이전) 형식으로 서버에 암호를 전송하지 5.6.17
--shared-memory-base-name 공유 메모리 연결에 사용하는 공유 메모리의 이름
--silent 자동 모드
--skip-database 수행되는 작업에서이 데이터베이스를 제외 5.6.11
--socket 로컬 호스트에 연결하는 데 사용하는 Unix 소켓 파일
--ssl 연결에 SSL을 활성화
--ssl-ca 신뢰할 수있는 SSL CA의 목록이 들어있는 파일의 경로
--ssl-capath 신뢰할 수있는 SSL CA의 PEM 형식의 인증서를 포함하는 디렉토리의 경로
--ssl-cert PEM 형식의 X509 인증서가 포함 된 파일의 경로
--ssl-cipher SSL 암호화에 사용되는 허용 된 암호 목록
--ssl-crl 인증서 해지 목록을 포함하는 파일의 경로 5.6.3
--ssl-crlpath 인증서 해지 목록 파일을 포함하는 디렉토리 경로 5.6.3
--ssl-key PEM 형식의 X509 키를 포함하는 파일의 경로
--ssl-verify-server-cert 서버에 연결할 때 서버 인증서의 일반 이름 값을 호스트 이름에 대해 검증
--tables --databases 옵션 또는 -B 옵션을 재정의
--use-frm MyISAM 테이블의 복구 작업에
--user 서버에 연결할 때 사용하는 MySQL 사용자 이름
--verbose 중복 모드
--version 버전 정보를 출력하고 종료
--write-binlog ANALYZE 문 OPTIMIZE 문 REPAIR 문을 바이너리 로그에 기록. --skip-write-binlog는 NO_WRITE_TO_BINLOG 이러한 문에 추가합니다.

  • --help , -?

    도움말 메시지를 표시하고 종료합니다.

  • --all-databases , -A

    데이터베이스의 모든 테이블을 검사합니다. 이것은 INFORMATION_SCHEMA 데이터베이스 및 performace_schema 데이터베이스 덤프되지 않는 점을 제외하면 L --databases 옵션을 사용하여 명령 행에서 모든 데이터베이스를 지정하는 것과 동일합니다. 이들은 --databases 옵션에서 명시 적으로 지명하여 덤프 할 수 있습니다.

  • --all-in-1 , -1

    각 테이블에 문을 발행하는 대신 각 데이터베이스에 대해 데이터베이스에서 처리되는 모든 테이블을 지명하는 단일 문을 실행합니다.

  • --analyze , -a

    테이블을 분석합니다.

  • --auto-repair

    확인 된 테이블이 깨진 경우 자동으로 복구합니다. 필요한 복구는 모든 테이블이 확인 된 후에 실행됩니다.

  • --bind-address= ip_address

    여러 네트워크 인터페이스가있는 시스템에서이 옵션을 사용하여 MySQL 서버에 연결하는 데 사용하는 인터페이스를 선택합니다.

    이 옵션은 MySQL 5.6.1에서 지원되고 있습니다.

  • --character-sets-dir= path

    문자 세트가 설치되어있는 디렉토리. 섹션 10.5 "문자 세트 구성" 을 참조하십시오.

  • --check , -c

    테이블에 오류가 있는지 확인합니다. 이것은 기본 동작입니다.

  • --check-only-changed , -C

    마지막에 행해진 검사 이후에 변경된 테이블 또는 올바르게 닫혀지지 않았던 테이블만을 검사합니다.

  • --check-upgrade , -g

    CHECK TABLE 를 FOR UPGRADE 옵션으로 호출하여 서버의 현재 버전과 호환되지 않는 테이블이 있는지 검사합니다. 이 옵션은 --fix-db-names 옵션 및 --fix-table-names 옵션이 자동으로 활성화됩니다.

  • --compress

    클라이언트와 서버가 압축을 지원하는 경우 그 사이에 송수신되는 정보를 압축합니다.

  • --databases , -B

    지정된 데이터베이스의 모든 테이블을 처리합니다. 일반적으로 mysqlcheck는 명령 행의 첫 번째 이름 인수를 데이터베이스 이름으로 연속 이름을 테이블 이름으로 처리합니다. 이 옵션을 사용하면 이름 인수를 모두 데이터베이스 이름으로 처리합니다.

    이 옵션은 INFORMATION_SCHEMA 데이터베이스 및 performace_schema 데이터베이스 덤프에 사용할 수 있습니다. 이들은 일반적으로 --all-databases 옵션을 지정해도 덤프되지 않습니다. ( --skip-lock-tables 옵션을 사용하십시오.)

  • --debug[= debug_options ] , -# [ debug_options ]

    디버그 로그를 기록합니다. 일반적인 debug_options 문자열은 d:t:o, file_name 입니다. 기본값은 d:t:o 입니다.

  • --debug-check

    프로그램 종료시 디버그 정보를 출력합니다.

  • --debug-info

    프로그램 종료시 디버그 정보와 메모리 및 CPU 사용량 통계를 출력합니다.

  • --default-character-set= charset_name

    charset_name 를 디폴트 문자 세트로 사용합니다. 섹션 10.5 "문자 세트 구성" 을 참조하십시오.

  • --defaults-extra-file= file_name

    이 옵션 파일은 글로벌 옵션 파일 다음에 읽을 수 있지만 (UNIX의 경우) 사용자 옵션 파일 전에 읽도록​​하십시오. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다. file_name 은 전체 경로 이름이 ​​아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.

  • --defaults-file= file_name

    지정된 옵션 파일 만 사용합니다. 파일이 없거나 액세스 할 수없는 경우 오류가 발생합니다. file_name 은 전체 경로 이름이 ​​아닌 상대 경로 이름으로 지정된 경우 현재 디렉토리를 기준으로 해석됩니다.

  • --defaults-group-suffix= str

    일반적인 옵션 그룹뿐만 아니라 일반 이름에 str 의 접미사가 붙은 그룹도 읽습니다. 예를 들어, mysqlcheck는 보통 [client] 그룹과 [mysqlcheck] 그룹을 읽습니다. --defaults-group-suffix=_other 옵션을 지정했을 경우, mysqlcheck는 [client_other] 그룹과 [mysqlcheck_other] 그룹도 읽습니다.

  • --extended , -e

    테이블의 검사에이 옵션을 사용하는 경우 100 % 일치한다는 것이 보장되지만 시간이 걸립니다.

    이 옵션을 사용하여 테이블을 복구하는 경우 복구 작업에 시간이 걸릴뿐만 아니라 대량의 쓰레기 행을 생성 할 수도 있습니다.

  • --default-auth= plugin

    사용하는 클라이언트 인증 플러그인. 섹션 6.3.7 "플러그 인증" 을 참조하십시오.

    이 옵션은 MySQL 5.6.2에서 추가되었습니다.

  • --fast , -F

    제대로 닫히지 않은 테이블 만 검사합니다.

  • --fix-db-names

    데이터베이스 이름을 5.1 형식으로 변환합니다. 특수 문자가 포함 된 데이터베이스 이름 만 영향을받습니다.

  • --fix-table-names

    테이블 이름을 5.1 형식으로 변환합니다. 특수 문자가 포함 된 테이블 이름 만 영향을받습니다. 이 옵션은보기에도 적용됩니다.

  • --force , -f

    SQL 오류가 발생해도 계속합니다.

  • --host= host_name , -h host_name

    지정된 호스트의 MySQL 서버에 연결합니다.

  • --login-path= name

    지명 된 로그인 경로에서 .mylogin.cnf 로그인 파일의 옵션을 읽습니다. "로그인 경로"는 host , user 및 password 라는 제한된 옵션 집합 만 허용 옵션 그룹입니다. 로그인 경로는 서버 호스트 및 서버에서 인증을위한 인증 정보를 나타내는 값의 집합이라고 생각합니다. 로그인 경로 파일을 작성하려면 mysql_config_editor 유틸리티를 사용합니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오. 이 옵션은 MySQL 5.6.6에서 추가되었습니다.

  • --medium-check , -m

    --extended 조작보다 빠른 검사를 실행합니다. 이것은 모든 오류의 99.99 %만을 확인하고 대부분의 경우 이것으로 충분하다.

  • --no-defaults

    옵션 파일을 읽지 않습니다. 옵션 파일에서 알 수없는 옵션을 읽을로 인해 프로그램의 실행에 실패 할 경우 --no-defaults 를 사용하여 옵션을 읽는 것을 방지 할 수 있습니다.

    예외적으로 .mylogin.cnf 파일은 존재하는 경우는 모든 경우에 읽습니다. 이는 --no-defaults 가 사용 된 경우에도 명령 행보다 안전한 방법으로 암호를 지정할 수 있습니다. ( .mylogin.cnf 는 mysql_config_editor 유틸리티가 작성됩니다. 섹션 4.6.6 "mysql_config_editor - MySQL 구성 유틸리티" 를 참조하십시오).

  • --optimize , -o

    테이블을 최적화합니다.

  • --password[= password ] , -p[ password ]

    서버에 연결할 때 사용하는 암호입니다. 짧은 옵션 형식 ( -p )을 사용하는 경우, 옵션과 패스워드 사이에 스페이스를 가질 수 없습니다. 명령 행에서 --password 옵션 또는 -p 옵션 뒤에 password 의 값을 지정하지 않은 경우, mysqlcheck는 그것을 요구합니다.

    명령 행에서 암호 지정은 안전하지 않다고 생각한다. 섹션 6.1.2.1 "비밀번호 보안에 대한 최종 사용자 지침" 을 참조하십시오. 옵션 파일을 사용하면 명령 행에서 암호를 지정하는 것을 방지 할 수 있습니다.

  • --pipe , -W

    Windows에서 명명 된 파이프를 사용하여 서버에 연결합니다. 이 옵션은 서버가 명명 된 파이프 연결을 지원하는 경우에만 적용됩니다.

  • --plugin-dir= path

    플러그인을 검색하는 디렉토리. --default-auth 옵션을 사용하여 인증 플러그인을 지정했지만, mysqlcheck이 그것을 찾을 수없는 경우이 옵션을 지정해야 할 수도 있습니다. 섹션 6.3.7 "플러그 인증" 을 참조하십시오.

    이 옵션은 MySQL 5.6.2에서 추가되었습니다.

  • --port= port_num , -P port_num

    연결에 사용하는 TCP / IP 포트 번호.

  • --print-defaults

    프로그램 이름과 옵션 파일에서받는 모든 옵션을 출력합니다.

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    서버에 연결하는 데 사용하는 연결 프로토콜. 이 옵션은 다른 연결 매개 변수는 필요한 프로토콜 이외의 것이 일반적으로 사용되는 경우에 유용합니다. 허용되는 값의 자세한 내용은 섹션 4.2.2 "MySQL 서버에 연결" 을 참조하십시오.

  • --quick , -q

    이 옵션을 사용하여 테이블을 검사하는 경우 잘못된 링크를 검사하기위한 열 스캐닝을하지 않습니다. 이것이 가장 빠른 검사 방법입니다.

    이 옵션을 사용하여 테이블을 복구하는 경우 인덱스 트리만을 복구를 시도합니다. 이것이 가장 빠른 복구 방법입니다.

  • --repair , -r

    고유하지 않은 고유 키를 제외한 모든 고칠 수 복구를 실행합니다.

  • --secure-auth

    이전 (4.1 이전) 형식으로 서버에 암호를 전송하지 않습니다. 그러면 새 암호 형식을 사용하는 서버 이외의 연결을 방지합니다. 이 옵션은 기본적으로 활성화됩니다. 해제하려면 --skip-secure-auth 를 사용합니다. 이 옵션은 MySQL 5.6.17에서 추가되었다.

    참고

    4.1 이전의 해시 방식을 사용하는 암호는 기본 암호 해시 방식을 사용하는 암호보다 안전하지 않기 때문에 사용하지 않도록하십시오. 4.1 이전 암호는 사용되지 않으며, 이러한 지원은 향후 MySQL 릴리스에서 제거 될 예정입니다. 계정 업그레이드 지침은 섹션 6.3.8.3 "4.1 이전 암호 해시 방식과 mysql_old_password 플러그인에서 마이그레이션" 을 참조하십시오.

  • --shared-memory-base-name= name

    Windows에서 공유 메모리를 사용하여 생성되는 로컬 서버에 연결 공유 메모리 이름. 기본값은 MYSQL 입니다. 공유 메모리 이름은 대소 문자를 구분합니다.

    공유 메모리 연결을 가능하게하려면 서버는 --shared-memory 옵션으로 시작해야합니다.

  • --silent , -s

    자동 모드. 오류 메시지 만 출력합니다.

  • --skip-database= db_name

    지명 된 데이터베이스 (대소 문자 구분)를, mysqlcheck가 수행하는 작업에 포함되지 않습니다. 이 옵션은 MySQL 5.6.11에서 추가되었다.

  • --socket= path , -S path

    localhost 에 연결하는 데 사용되는 Unix 소켓 파일 또는 Windows에서 사용하는 명명 된 파이프의 이름.

  • --ssl*

    --ssl 로 시작하는 옵션은 SSL을 사용하여 서버에 연결할지 여부를 지정하고 SSL 키와 인증서를 검색 할 위치를 지정합니다. 섹션 6.3.10.4 "SSL 명령 옵션" 을 참조하십시오.

  • --tables

    --databases 옵션 또는 -B 옵션을 재정의합니다. 옵션 다음에 나오는 모든 이름 인수는 테이블 이름으로 간주됩니다.

  • --use-frm

    MyISAM 테이블의 복구 작업에서 .frm 파일로부터 테이블 구조를 취득하여 .MYI 헤더가 손상 있어도 테이블이 복구 할 수 있습니다.

  • --user= user_name , -u user_name

    서버에 연결할 때 사용하는 MySQL 사용자 이름.

  • --verbose , -v

    중복 모드. 프로그램 처리의 다양한 단계에 대한 정보를 출력합니다.

  • --version , -V

    버전 정보를 출력하고 종료합니다.

  • --write-binlog

    이 옵션은 기본적으로 활성화되어, mysqlcheck 의해 생성되는 ANALYZE TABLE , OPTIMIZE TABLE 및 REPAIR TABLE 의 각 문이 바이너리 로그에 기록됩니다. --skip-write-binlog 를 사용하면 문에 NO_WRITE_TO_BINLOG 가 추가되어 기록되지 않습니다. 이 문이 복제 슬레이브로 전송되는 안된다 경우 또는 바이너리 로그를 백업에서 복구에 사용하는 경우에는 --skip-write-binlog 를 사용합니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved