MySQL을 업그레이드하는 가장 좋은 방법의 예 공유

小云云
풀어 주다: 2018-01-05 17:39:57
원래의
1671명이 탐색했습니다.

MySQL5.7에는 온라인 DDL, 다중 소스 복제, 향상된 반동기화, 테이블 공간 전송, sys 라이브러리, 그룹 복제 등과 같은 많은 새로운 기능이 추가되었습니다. 최근에 마침내 MySQL을 5.7로 업그레이드할 기회를 얻었고 매우 기뻤습니다. 이 기사에서는 MySQL을 이론에서 실습으로 업그레이드하는 가장 좋은 방법을 주로 공유합니다. 도움이 필요한 친구들이 따라하고 배우고 운영할 수 있습니다.

MySQL 업그레이드 개요

MySQL 업그레이드의 본질:

데이터 사전으로 업그레이드하세요

데이터 사전에는 mysql, information_schema,performance_schema, sys 스키마가 포함됩니다.

MySQL을 업그레이드하는 두 가지 방법:

전체 업그레이드:

마이너 버전 업그레이드에 적합합니다.

즉, 현재 MySQL을 종료하고 현재 바이너리 또는 패키지를 교체한 다음 기존 데이터 디렉터리에서 MySQL을 다시 시작하고 mysql_upgrade를 실행합니다. 특징: 데이터 파일이 변경되지 않고 업그레이드 속도가 빠르지만 운영 체제 및 주요 버전(5.5->5.7)을 넘을 수 없습니다. 논리적 업그레이드:

다양한 운영 체제에서의 MySQL 업그레이드 및 주요 버전 간의 업그레이드에 적합합니다.


즉, mysqldump 또는 mydumper를 사용하여 데이터를 가져오고 내보내 버전을 업그레이드하세요.

특징: 운영 체제와 주요 버전을 교차할 수 있지만 업그레이드 속도가 느리고 잘못된 코드와 같은 문제가 발생하기 쉽습니다.

업그레이드 전 준비사항:

미리 백업해두세요.

새 버전의 변경 사항에 대한 정보를 얻으세요(더 이상 호환되지 않는 기능, 더 이상 지원되지 않는 기능)

공식 웹사이트의 일반 정보 —>mysql 5.7의 새로운 기능

업그레이드 시 참고 사항:

새 버전에 큰 변화가 있는지 확인해보세요

SQL 모드의 변경 사항에 주목하세요

예: MySQL 5.7에서는 SQL 모드가 변경되었습니다. 더 이상 지원되지 않는 SQL 모드의 경우 일부 SQL이 실행되지 않습니다. 이때 SQL 모드를 지우고 실행 후 SQL 모드를 설정할 수 있습니다.

업그레이드가 성공한 후

를 통해 비즈니스 SQL을 실행할 수 있는지 확인하세요.

모든 프로그램 레이어가 정상인가요? 때로는 원래 프로그래밍 언어의 일부가 새 버전의 데이터베이스에서 지원되지 않는 경우가 있습니다. 예를 들어, 5.1에서 PHP 4.0을 사용하고 있었는데 5.6으로 업그레이드한 후 PHP의 일부 기능이 지원되지 않았습니다.

업그레이드가 완료된 후에는 반드시 온라인 버전과 동일한 프로그램을 사용하여 테스트를 진행하여 문제가 있는지 확인하시기 바랍니다.

스토리지 엔진 변경

예를 들어, 향후 버전 5.8에서는 myisam 엔진이 더 이상 지원되지 않습니다.

왜곡된 문자 집합 문제에 주의하세요

다음 단계는 전체 업그레이드 방법을 사용하여 MySQL5.6을 MySQL5.7로 업그레이드하는 것입니다.

전체 업그레이드 업그레이드 MySQL

환경:

5.6.15 —>5.7.20

업그레이드 전 준비사항:

백업 + 새 버전의 변경 사항에 주의

업그레이드 작업:

1. 5.7 소프트웨어 패키지

# tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql5.7
로그인 후 복사

를 다운로드하고 압축을 풉니다. 2. 현재 MySQL(5.6)을 닫습니다.
# mysql -u root -p -S /data/mysql3308/mysql3308.sock --execute="SET GLOBAL innodb_fast_shutdown=0"
# mysqladmin -u root -p -S /data/mysql3308/mysql3308.sock shutdown
로그인 후 복사

3. 바이너리 파일 교체(5.7이 5.6 대체)

# cd /usr/local
# mv mysql  mysql5.6
# mv mysql5.7 mysql
로그인 후 복사

4. 기존 데이터 디렉터리를 사용하여 MySQL을 시작합니다

# mysqld_safe --user=mysql --socket=/data/mysql3308/mysql3308.sock -p --skip-grant-tables --datadir=/data/mysql3308/data
로그인 후 복사

5. 모든 테이블이 현재 버전과 호환되는지 확인하고 시스템 라이브러리를 업데이트하세요

# mysql_upgrade -uroot -p -S /data/mysql3308/mysql3308.sock
注:mysql_upgrade的作用是检查所有库的所有表是否与当前的新版本兼容,并更新系统库。
로그인 후 복사

6. 시스템 테이블에 대한 변경 사항이 적용되도록 다시 시작하세요.

# mysqld --defaults-file=/data/mysql3308/my3308.cnf &
# mysql -uroot -p -S /data/mysql3308/mysql3308.sock
로그인 후 복사

이 시점에서 업그레이드가 완료됩니다.

질문: MySQL을 업그레이드할 때 업그레이드가 실패하면 어떻게 해야 합니까?

업그레이드 시 일반적으로 업그레이드를 위해 슬레이브 라이브러리가 생성됩니다. 업그레이드가 성공하고 테스트가 성공하면 다른 슬레이브 라이브러리가 점차적으로 새 버전으로 업그레이드됩니다. 마지막으로 기본 라이브러리가 업그레이드됩니다. 데이터베이스가 오프라인 상태가 되면 슬레이브 데이터베이스가 새 마스터 데이터베이스로 승격되고 이전 마스터 데이터베이스가 업그레이드됩니다.

관련 권장 사항:

업그레이드 후 mysql 시작 실패에 대한 솔루션

PHP 캡슐화 Mysql 작업 클래스에 대한 자세한 설명

PHP가 중국어로 왜곡된 MySQL 저장 데이터 문제를 해결하는 방법

위 내용은 MySQL을 업그레이드하는 가장 좋은 방법의 예 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿