• 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. 설치 관련 프로그램
    1. comp_err - MySQL 에러 메시지 파일 컴파일
    2. 버그 보고서 작성
    3. mysql_install_db - MySQL 데이터 디렉토리 초기화
    4. mysql_plugin - MySQL 서버 플러그인 구성
    5. mysql_secure_installation - MySQL 설치 보안 개선
    6. mysql_tzinfo_to_sql — Load the Time Zone Tables
    7. mysql_upgrade - MySQL 테이블 체크 및 업그레이드
    5. 클라이언트 프로그램
    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.4.7 mysql_upgrade - MySQL 테이블 체크 및 업그레이드

mysql_upgrade는 모든 데이터베이스의 모든 테이블에 대해 MySQL 서버의 현재 버전과의 비 호환성을 확인합니다. 또한 mysql_upgrade는 시스템 테이블을 업그레이드하여 추가 된 수있는 새로운 권한 또는 기능을 사용할 수있게합니다.

mysql_upgrade은 테이블에 비 호환 가능성이 발견되면 테이블을 검사하고 문제가 발견 된 경우 테이블의 복구를 시도합니다. 테이블을 복구 할 수없는 경우에는 수동으로 테이블을 복구하는 방법 섹션 2.11.4 "테이블 또는 인덱스를 다시 만들거나 복구" 를 참조하십시오.

mysql_upgrade는 MySQL을 업그레이드 할 때마다 실행하도록하십시오.

Linux에서 MySQL을 RPM 패키지에서 설치하는 경우 서버와 클라이언트의 RPM을 설치해야합니다. mysql_upgrade는 서버 RPM에 포함되어 있지만, 클라이언트 RPM에 mysqlcheck가 포함되어 있기 때문에 클라이언트 RPM이 필요합니다. ( 섹션 2.5.5 "RPM 패키지를 사용하여 MySQL을 Linux에 설치" 를 참조하십시오.)

참고

Windows Server 2008, Vista 이상에서는 mysql_upgrade를 관리자 권한으로 실행해야합니다. 그러기 위해서는 명령 프롬프트를 관리자 권한으로 실행하고 그 명령을 실행합니다. 그렇지 않으면 업그레이드가 제대로 실행되지 않을 수 있습니다.

주의

업그레이드를 수행하기 전에 현재 MySQL 설치를 백업하도록하십시오. 7.2 절 "데이터베이스 백업 방법" 을 참조하십시오.

일부 업그레이드의 비 호환성은 MySQL 설치를 업그레이드하고 mysql_upgrade를 실행하기 전에 특수한 처리가 필요한 경우가 있습니다. 이러한 비 호환성이 사용하는 설치에 해당하는지 여부의 판단 및 그 대처 방법은 섹션 2.11.1 "MySQL 업그레이드" 를 참조하십시오.

mysql_upgrade를 사용하려면 서버가 실행 중인지 확인하십시오. 그 후, 다음과 같이 호출합니다.

 shell> mysql_upgrade [ options ] 

mysql_upgrade를 실행 한 후 시스템 테이블에 변경 사항이 적용되도록 서버를 중지하고 다시 시작합니다.

복수의 MySQL 서버 인스턴스가 실행중인 경우 원하는 서버에 적합한 연결 매개 변수를 사용하여 mysql_upgrade를 호출합니다. 예를 들어, 로컬 호스트에서 3306에서 3308까지의 포트에서 서버가 실행중인 경우 해당 포트에 연결하고 각각을 업그레이드합니다.

 shell> mysql_upgrade --protocol=tcp -P 3306 [ other_options ]
 shell> mysql_upgrade --protocol=tcp -P 3307 [ other_options ]
 shell> mysql_upgrade --protocol=tcp -P 3308 [ other_options ]

Unix에서 로컬 호스트 연결은 --protocol=tcp 옵션을 사용하면 Unix 소켓 파일이 아닌 TCP / IP를 강제로 사용하여 연결이 이루어집니다.

mysql_upgrade는 다음 명령을 실행하여 테이블을 점검하고 수리 및 시스템 테이블의 업그레이드를 실행합니다.

 mysqlcheck --no-defaults --databases
  --fix-db-names --fix-table-names mysql
 mysqlcheck --no-defaults --check-upgrade --databases
  --auto-repair mysql
 mysql <fix_priv_tables
 mysqlcheck --no-defaults --all-databases
  --skip-database = mysql --fix-db-names --fix-table-names
 mysqlcheck --no-defaults --check-upgrade --all-databases
  --skip-database = mysql --auto-repair

위의 명령에 대한주의 :

  • mysql_upgrade는 또한 mysql_upgrade 명령에 --write-binlog 옵션이 지정된 여부에 따라 --write-binlog 또는 --skip-write-binlog 를 mysqlcheck 명령에 추가합니다.

  • mysql_upgrade은 mysqlcheck를 --all-databases 옵션으로 호출하기 때문에 모든 데이터베이스의 모든 테이블이 처리되어 완료하는 데 시간이 오래 걸릴 수 있습니다. 각 테이블은 잠겨 있기 때문에 작업 중에 다른 세션에서 사용할 수 없습니다. 확인 및 복구 작업에 시간이 걸릴 수 있고, 특히 큰 테이블에서는 시간이 오래 걸릴 수 있습니다.

  • --check-upgrade 옵션으로 실행되는 검사의 자세한 내용은 CHECK TABLE 문 FOR UPGRADE 옵션에 대한 설명을 참조하십시오 ( 섹션 13.7.2.2 "CHECK TABLE 구문" 을 참조하십시오).

  • fix_priv_tables 은 mysql_upgrade 의해 내부적으로 생성되어 mysql 데이터베이스의 테이블을 업그레이드하기위한 SQL 문을 포함하는 스크립트를 나타냅니다.

체크 및 수복 한 모든 테이블은 현재의 MySQL 버전 번호로 표시됩니다. 그러면 다음 같은 버전의 서버에서 mysql_upgrade를 시작할 때 해당 테이블을 다시 확인하고 수정해야하는지 여부가 확실하게 알 수 있습니다.

mysql_upgrade는 또한 MySQL 버전 번호를 데이터 디렉토리의 mysql_upgrade_info 라는 파일에 저장합니다. 이것은 테이블의 검사를 생략 할 수 있도록 모든 테이블이 자료에 대해 체크 여부를 신속하게 확인하는 데 사용됩니다. 이 파일을 무시하고 어쨌든 검사를 수행하려면 --force 옵션을 사용합니다.

mysql_upgrade는 도움말 테이블의 내용은 업그레이드되지 않습니다. 업그레이드 절차는 섹션 5.1.10 "서버 측의 도움말" 을 참조하십시오.

기본적으로 mysql_upgrade는 MySQL root 사용자로 실행됩니다. mysql_upgrade 실행시 root 암호가 만료 된 경우 암호가 만료이며, 그 결과 mysql_upgrade이 실패했다는 메시지가 표시됩니다. 이 문제를 해결하려면 root 암호를 만료되지 않은 것으로 재설정하여 mysql_upgrade를 다시 실행합니다.

 shell> mysql -u root -p
 Enter password : **** <- enter root password here
 mysql> SET PASSWORD = PASSWORD('root-password');
 mysql> quit

 shell> mysql_upgrade [ options ]

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

표 4.4 mysql_upgrade 옵션

형식 설명 도입
--basedir 사용하지
--character-sets-dir 문자 세트가 설치되어있는 디렉토리
--compress 클라이언트와 서버간에 전송되는 정보를 압축
--datadir 사용하지
--debug 디버깅 로그를 작성한다
--debug-check 프로그램이 종료 될 때 디버깅 정보를 출력
--debug-info 프로그램 종료시 디버그 정보, 메모리 및 CPU 통계를 출력
--default-auth 사용하는 인증 플러그인 5.6.2
--default-character-set 기본 문자 집합을 지정
--defaults-extra-file 일반 옵션 파일 이외에 옵션 파일을 읽을
--defaults-file 지명 된 옵션 파일 만 읽을
--defaults-group-suffix 옵션 그룹의 접미사 값
--force MySQL의 현재 버전에 mysql_upgrade를 실행되어있는 경우에도 강제로 실행
--help 도움말 메시지를 표시하고 종료
--host 지정된 호스트에서 MySQL 서버에 연결
--login-path 로그인 경로 옵션을 .mylogin.cnf에서 읽기 5.6.6
--no-defaults 옵션 파일을 읽지
--password 서버에 연결할 때 사용하는 비밀번호
--pipe Windows에서 명명 된 파이프를 사용하여 서버에 연결
--plugin-dir 플러그인이 설치되어있는 디렉토리 5.6.2
--port 연결에 사용하는 TCP / IP 포트 번호
--print-defaults 기본 출력
--protocol 사용하는 연결 프로토콜
--shared-memory-base-name 공유 메모리 연결에 사용하는 공유 메모리의 이름
--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 서버에 연결할 때 서버 인증서의 일반 이름 값을 호스트 이름에 대해 검증
--tmpdir 임시 파일 디렉토리
--upgrade-system-tables 시스템 테이블을 업데이트하고 데이터는 업데이트하지
--user 서버에 연결할 때 사용하는 MySQL 사용자 이름
--verbose 중복 모드
--version-check 적절한 서버 버전 확인 5.6.12
--write-binlog 모든 문을 바이너리 로그에 기록

  • --help

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

  • --basedir= dir_name

    MySQL 설치 디렉토리 경로. 이 옵션은 후방 호환성을 위해 받아 들일 수 있지만 무시됩니다. MySQL 5.7에서는 삭제되었습니다.

  • --character-sets-dir= path

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

  • --compress

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

  • --datadir= dir_name

    데이터 디렉토리 경로. 이 옵션은 후방 호환성을 위해 받아 들일 수 있지만 무시됩니다. MySQL 5.7에서는 삭제되었습니다.

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

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

  • --debug-check

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

  • --debug-info , -T

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

  • --default-auth= plugin

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

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

  • --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 의 접미사가 붙은 그룹도 읽습니다. 예를 들어, mysql_upgrade는 보통 [client] 그룹 및 [mysql_upgrade] 그룹을 읽습니다. --defaults-group-suffix=_other 옵션을 지정한 경우 mysql_upgrade는 [client_other] 그룹과 [mysql_upgrade_other] 그룹도 읽습니다.

  • --force

    mysql_upgrade_info 파일을 무시하고 MySQL의 현재 버전에 mysql_upgrade를 실행되어있는 경우에도 강제로 실행합니다.

  • --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에서 추가되었습니다.

  • --no-defaults

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

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

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

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

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

  • --pipe , -W

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

  • --plugin-dir= path

    플러그인을 검색하는 디렉토리. --default-auth 옵션을 사용하여 인증 플러그인을 지정했지만, mysql_upgrade이 그것을 찾을 수없는 경우이 옵션을 지정해야 할 수도 있습니다. 섹션 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 서버에 연결" 을 참조하십시오.

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

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

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

  • --socket= path , -S path

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

  • --ssl*

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

  • --tmpdir= dir_name , -t path

    임시 파일을 만드는 데 사용하는 디렉토리의 경로 이름.

  • --upgrade-system-tables , -s

    시스템 테이블을 업그레이드하고 데이터는 업그레이드하지 않습니다.

  • --user= user_name , -u user_name

    서버에 연결할 때 사용하는 MySQL 사용자 이름. 기본 사용자 이름은 root 입니다.

  • --verbose

    중복 모드. 프로그램의 동작에 대해 더 많은 정보를 출력합니다.

  • --version-check , -k

    mysql_upgrade를 연결할 서버의 버전을 확인하고 mysql_upgrade이 빌드 된 버전과 동일한 지 확인합니다. 그렇지 않은 경우는 mysql_upgrade는 종료합니다. 이 옵션은 기본적으로 활성화되어 있습니다. --skip-version-check 를 사용하여 비활성화하십시오. 이 옵션은 MySQL 5.6.12에서 추가되었다.

  • --write-binlog

    mysql_upgrade의 실행 중에 바이너리 로깅을 활성화합니다. MySQL 5.6.6 이전 버전에서는 이것이 기본 동작이었습니다. (업그레이드 중에 바이너리 로깅을 해제하려면 프로그램을 --skip-write-binlog 에서 시작하여이 옵션의 반대를 사용할 필요가있었습니다.) MySQL 5.6.7에서 mysql_upgrade 의한 바이너리 로깅은 기본적으로 비활성화됩니다 (Bug # 14221043). 액션을 바이너리 로그에 기록하려면 명시 적으로 --write-binlog 를 사용하여 프로그램을 호출합니다. (또한 MySQL 5.6.7에서 --skip-write-binlog 옵션은 실제로는 아무것도하지 않습니다.)

    글로벌 트랜잭션 식별자를 사용하여 실행중인 MySQL 서버에서는 mysql_upgrade를 실행하는 것은 권장되지 않습니다 (Bug # 13833710). 이것은 GTID를 사용하는 것은 mysql_upgrade이 시스템 테이블에 대해 MyISAM 과 같은 비 트랜잭션 스토리지 엔진을 사용하여 실행해야하는 업데이트가 실패하는 것을 의미하기 때문입니다. 자세한 내용은 섹션 17.1.3.4 "GTID 기반 복제 제한 사항" 을 참조하십시오.


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