2.11.1 MySQL 업그레이드
원칙적으로의 분리 시리즈에서 또 다른 한개로 업그레이드하려면 시리즈를 스킵하지 않고 다음 시리즈로 이동합니다. MySQL 5.5 이전 릴리스 시리즈에서 업그레이드하려면 MySQL 5.5에 도달 할 때까지 순서대로 다음 릴리스 시리즈로 업그레이드 한 후 MySQL 5.6으로 업그레이드를 진행합니다. 예를 들어, 현재 MySQL 5.1을 실행하고 새로운 시리즈로 업그레이드하는 경우 MySQL 5.6으로 업그레이드하기 전에 먼저 5.5로 업그레이드하는 등입니다. MySQL 5.5으로 업그레이드 자세한 내용은 "MySQL 5.5 참조 설명서"를 참조하십시오.
MySQL 5.6으로 업그레이드하려면 다음의 체크리스트의 항목을 참고하십시오.
업그레이드 전에 부여 테이블을 포함
mysql
데이터베이스 등의 데이터베이스를 백업합니다. 7.2 절 "데이터베이스 백업 방법" 을 참조하십시오.섹션 2.11.1.3 「MySQL 5.5에서 5.6로 업그레이드 " 의 모든 주석을 읽어 보시기 바랍니다. 이러한 주석에 의해 현재의 MySQL 설치에 적용되는 업그레이드 문제를 식별 할 수 있습니다. 해당 섹션에 설명 된 일부 호환성 부족, 업그레이드하기 전에주의해야합니다. 업그레이드 후 조치가 필요한 것도 있습니다.
릴리스 노트 도 읽어 보시기 바랍니다. 여기에는 MySQL 5.6의 새로운 기능과 MySQL의 이전 버전과는 다르게 정보가 있습니다.
MySQL의 새로운 버전으로 업그레이드 한 후 mysql_upgrade를 실행합니다 ( 섹션 4.4.7 "mysql_upgrade - MySQL 테이블 체크 및 업그레이드" 를 참조하십시오). 이 프로그램은 테이블을 확인하고 필요에 따라 복구를 시도합니다. 또한 부여 테이블을 업데이트하여 최신 구조를 갖게하고 새로운 기능을 활용할 수 있도록합니다. (MySQL 릴리스에는 새로운 권한 또는 기능을 추가하기 위하여 부여 테이블의 구조를 변경하는 것도 있습니다.)
mysql_upgrade는 도움말 테이블의 내용은 업그레이드되지 않습니다. 업그레이드 절차는 섹션 5.1.10 "서버 측의 도움말" 을 참조하십시오.
mysql_upgrade는 서버가
--gtid-mode=ON
에서 실행중인 경우에는 사용하지 마십시오. 사용하면mysql
데이터베이스의 비 트랜잭션 시스템 테이블이 변경 될 수 있습니다. 이들의 대부분은MyISAM
에서 다른 스토리지 엔진을 사용하도록 변경할 수 없습니다. GTID 모드와 mysql_upgrade 를 참조하십시오.MySQL Server를 Windows에서 사용하려면 섹션 2.3.7 "Windows에서 MySQL 업그레이드" 를 참조하십시오.
복제를 사용할 경우 복제 설정의 업그레이드 섹션 17.4.3 "복제 설정을 업그레이드" 를 참조하십시오.
InnoDB
를 사용하려면 서버를 종료하고 업그레이드하기 전에innodb_fast_shutdown
를 0으로 설정하는 것을 고려합니다.innodb_fast_shutdown
를 0으로 설정하면InnoDB
는 종료 전에 저속 종료 완전한 제거 및 삽입 버퍼 병합을 실행합니다. 이렇게하면 업그레이드 프로세스에서 파일 형식이 변경 될 경우에 대비하여 모든 데이터 파일이 완전히 준비됩니다.원래 여러 RPM 패키지를 설치하고 생성 한 설치를 업그레이드하는 경우 일부뿐만 아니라 모든 패키지를 업그레이드하는 것이 좋습니다. 예를 들어, 이전에 서버 및 클라이언트의 RPM을 설치 한 경우 서버의 RPM 만 업그레이드하는 것은하지 마십시오.
사용자 정의 함수 (UDF)를 제 이름으로 만든 후에, MySQL을 같은 이름의 내장 함수를 구현 한 새로운 버전으로 업그레이드 한 경우, 그 UDF는 액세스 할 수 없습니다. 이 문제를 해결하려면
DROP FUNCTION
을 사용하여 UDF를 삭제하고CREATE FUNCTION
을 사용하여 충돌하지 않는 다른 이름으로 UDF를 다시 만듭니다. 새로운 버전의 MySQL이 기존의 저장 기능과 동명의 내장 함수를 구현하고있는 경우에도 같은 곳 말할 수 있습니다. 각종 함수에 대한 참조를 서버가 해석하는 방법을 설명하는 규칙 내용은 섹션 9.2.4 "함수 이름의 구문 분석과 해결" 을 참조하십시오.
EL5, EL6 또는 EL7 기반 Linux 플랫폼 및 Fedora 20 또는 21에서 MySQL 및 그 구성 요소를 MySQL Yum 저장소에서 적절한 업그레이드 할 수 있습니다. 섹션 2.11.1.1 「MySQL Yum 저장소를 사용하는 MySQL의 업그레이드 " 를 참조하십시오.
Debian 7, Ubuntu 12 및 Ubuntu 14에서 MySQL 및 그 구성 요소를 MySQL APT 저장소에서 적절한 업그레이드 할 수 있습니다. 섹션 2.11.1.2 「MySQL APT 저장소를 사용하는 MySQL의 업그레이드 " 를 참조하십시오.
MySQL 릴리즈 시리즈의 일반 제공 상태에 도달 한 버전 간 업그레이드는 MySQL 형식의 파일 및 데이터 파일을 동일한 아키텍처를 가진 시스템에서 서로 다른 버전간에 이동할 수 있습니다. MySQL 릴리즈 시리즈의 개발 상태에있는 버전으로 업그레이드에서는 반드시 그렇지는 않습니다. 개발 출시는 자기 책임으로 사용하십시오.
새로운 버전의 사용에주의 경우 새 버전을 설치하기 전에 항상 오래된 mysqld의 이름을 변경할 수 있습니다. 예를 들어, MySQL 5.5 버전을 사용하고 5.6로 업그레이드 할 경우 현재의 서버를 mysqld에서 mysqld-5.5로 이름 변경합니다. 새로운 mysqld 예상외의 문제가 발생했을 경우 단순히 그것을 종료하고 이전 mysqld를 시작하기 만하면됩니다.
새로운 mysqld 서버가 시작되지 않거나 패스워드없이 접속할 수없는 등의 문제가 발생했을 경우에는 이전 설치 이전 my.cnf
파일이 남아 있지 않은지 확인합니다. 이것은 --print-defaults
옵션 (예를 들어, mysqld --print-defaults)에서 확인할 수 있습니다. 이 명령은 프로그램 이름이 아닌 다른 뭔가를 표시하는 경우 서버 또는 클라이언트 작업에 영향을 미치는 활성 my.cnf
파일이있는 것입니다.
업그레이드 후 컴파일 된 클라이언트 프로그램에 Commands out of sync
또는 예상하지 못한 코어 덤프 등의 문제가 발생했을 경우, 프로그램의 컴파일시에 기존 헤더 파일이나 라이브러리 파일을 사용했을 가능성이 있습니다. 이 경우 mysql.h
파일 및 libmysqlclient.a
라이브러리의 날짜를 확인하고 그들이 새로운 MySQL 배포판의 것임을 확인합니다. 그렇지 않은 경우에는 프로그램을 새로운 헤더 및 라이브러리에서 다시 컴파일합니다. ( libmysqlclient.so.15
에서 libmysqlclient.so.16
등) 라이브러리의 주 버전 번호가 변경된 경우 공유 클라이언트 라이브러리를 사용하여 컴파일 된 프로그램도 다시 컴파일해야 할 수 있습니다.
MySQL 설치에 적절한 업그레이드 후 변환에 시간이 오래 걸릴 수있는 대량의 데이터가 포함되어있는 경우 필요한 변환과 실행에 관련된 작업을 평가하기위한 "임시"데이터베이스 인스턴스를 만들 때 도움이 될 수 있습니다. mysql
데이터베이스의 전체 복사와 데이터를 포함하지 않는 다른 모든 데이터베이스를 포함 MySQL 인스턴스의 복사본을 만듭니다. 이 더미의 인스턴스에 대해 업그레이드 단계를 수행하고 필요한 조치를 확인하고 원본 데이터베이스 인스턴스에서 실제 데이터 변환을 수행 할 때 관련된 작업을 잘 평가할 수 있도록합니다.
새로운 버전의 MySQL을 설치했을 때는 반드시 Perl DBD::mysql
모듈을 재 구축하고 다시 설치하는 것이 좋습니다. 같은 것이 PHP mysql
확장이나 파이썬 MySQLdb
모듈과 같은 다른 MySQL 인터페이스도 마찬가지입니다.