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
# 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!