Hướng dẫn how to upgrade mysql minor version - cách nâng cấp phiên bản nhỏ của mysql

Khi Amazon RDS hỗ trợ phiên bản mới của công cụ cơ sở dữ liệu, bạn có thể nâng cấp các phiên bản DB của mình lên phiên bản mới. Có hai loại nâng cấp cho các phiên bản DB MySQL: nâng cấp phiên bản chính và nâng cấp phiên bản nhỏ.

Nâng cấp phiên bản chính có thể chứa các thay đổi cơ sở dữ liệu không tương thích ngược với các ứng dụng hiện có. Do đó, bạn phải thực hiện các bản nâng cấp phiên bản chính theo cách thủ công của các phiên bản DB của mình. Bạn có thể bắt đầu nâng cấp phiên bản chính bằng cách sửa đổi phiên bản DB của bạn. Tuy nhiên, trước khi bạn thực hiện nâng cấp phiên bản chính, chúng tôi khuyên bạn nên làm theo các hướng dẫn trong các bản nâng cấp phiên bản chính cho MySQL.

Ngược lại, nâng cấp phiên bản nhỏ chỉ bao gồm các thay đổi tương thích ngược với các ứng dụng hiện có. Bạn có thể bắt đầu nâng cấp phiên bản nhỏ theo cách thủ công bằng cách sửa đổi phiên bản DB của bạn. Hoặc bạn có thể bật tùy chọn nâng cấp phiên bản nhỏ tự động khi tạo hoặc sửa đổi phiên bản DB. Làm như vậy có nghĩa là phiên bản DB của bạn được tự động nâng cấp sau khi Amazon RDS kiểm tra và phê duyệt phiên bản mới. Để biết thông tin về việc thực hiện nâng cấp, hãy xem nâng cấp phiên bản động cơ thể hiện DB.Auto minor version upgrade option when creating or modifying a DB instance. Doing so means that your DB instance is automatically upgraded after Amazon RDS tests and approves the new version. For information about performing an upgrade, see Upgrading a DB instance engine version.

Nếu phiên bản DB MySQL của bạn đang sử dụng Read Replicas, bạn phải nâng cấp tất cả các bản sao đọc trước khi nâng cấp thể hiện nguồn. Nếu phiên bản DB của bạn đang triển khai đa AA, cả bản sao chính và dự phòng đều được nâng cấp. Ví dụ DB của bạn sẽ không khả dụng cho đến khi nâng cấp hoàn tất.

Nâng cấp công cụ cơ sở dữ liệu yêu cầu thời gian chết. Thời lượng thời gian chết khác nhau dựa trên kích thước của thể hiện DB của bạn.

Chủ đề

  • Tổng quan về nâng cấp
  • Nâng cấp phiên bản chính cho mysql
  • Kiểm tra nâng cấp
  • Nâng cấp phiên bản MySQL DB
  • Nâng cấp phiên bản nhỏ tự động cho MySQL
  • Sử dụng bản sao đọc để giảm thời gian chết khi nâng cấp cơ sở dữ liệu MySQL

Tổng quan về nâng cấp

Nâng cấp phiên bản chính cho mysql

Kiểm tra nâng cấp

aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version version-number \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Nâng cấp phiên bản MySQL DB

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Nâng cấp phiên bản nhỏ tự động cho MySQL

Kiểm tra nâng cấp

aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.23 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Nâng cấp phiên bản MySQL DB

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Nâng cấp phiên bản nhỏ tự động cho MySQL

Sử dụng bản sao đọc để giảm thời gian chết khi nâng cấp cơ sở dữ liệu MySQL

Khi bạn sử dụng bảng điều khiển quản lý AWS để nâng cấp thể hiện DB, nó sẽ hiển thị các mục tiêu nâng cấp hợp lệ cho phiên bản DB. Bạn cũng có thể sử dụng lệnh AWS CLI sau đây để xác định các mục tiêu nâng cấp hợp lệ cho một thể hiện DB:

Đối với Linux, MacOS hoặc Unix:

Cho cửa sổ:

Ví dụ: để xác định các mục tiêu nâng cấp hợp lệ cho phiên bản MySQL phiên bản 8.0.23 dB, hãy chạy lệnh AWS CLI sau:

Nâng cấp phiên bản chính cho mysql

Kiểm tra nâng cấp

  • Nâng cấp phiên bản MySQL DB

  • Nâng cấp phiên bản nhỏ tự động cho MySQL

Sử dụng bản sao đọc để giảm thời gian chết khi nâng cấp cơ sở dữ liệu MySQL

Khi bạn sử dụng bảng điều khiển quản lý AWS để nâng cấp thể hiện DB, nó sẽ hiển thị các mục tiêu nâng cấp hợp lệ cho phiên bản DB. Bạn cũng có thể sử dụng lệnh AWS CLI sau đây để xác định các mục tiêu nâng cấp hợp lệ cho một thể hiện DB:

Chủ đề

  • Tổng quan về nâng cấp phiên bản chính của MySQL
  • Nâng cấp lên MySQL phiên bản 5.7 có thể chậm
  • PrecheCks để nâng cấp từ MySQL 5,7 lên 8.0
  • Rollback sau khi không nâng cấp từ MySQL 5.7 lên 8.0

Tổng quan về nâng cấp phiên bản chính của MySQL

Nâng cấp lên MySQL phiên bản 5.7 có thể chậm

PrecheCks để nâng cấp từ MySQL 5,7 lên 8.0

Rollback sau khi không nâng cấp từ MySQL 5.7 lên 8.0

Nâng cấp phiên bản chính có thể chứa các thay đổi cơ sở dữ liệu không tương thích ngược với các ứng dụng hiện có. Do đó, Amazon RDS không tự động nâng cấp phiên bản chính; Bạn phải sửa đổi thủ công phiên bản DB của bạn. Chúng tôi khuyên bạn nên kiểm tra kỹ lưỡng mọi nâng cấp trước khi áp dụng nó vào các trường hợp sản xuất của bạn.

Nâng cấp lên MySQL phiên bản 5.7 có thể chậm

PrecheCks để nâng cấp từ MySQL 5,7 lên 8.0

Rollback sau khi không nâng cấp từ MySQL 5.7 lên 8.0

Nâng cấp phiên bản chính có thể chứa các thay đổi cơ sở dữ liệu không tương thích ngược với các ứng dụng hiện có. Do đó, Amazon RDS không tự động nâng cấp phiên bản chính; Bạn phải sửa đổi thủ công phiên bản DB của bạn. Chúng tôi khuyên bạn nên kiểm tra kỹ lưỡng mọi nâng cấp trước khi áp dụng nó vào các trường hợp sản xuất của bạn.

Để thực hiện nâng cấp phiên bản chính cho phiên bản MySQL phiên bản 5.6 dB trên Amazon RDS lên MySQL phiên bản 5.7 trở lên, trước tiên hãy thực hiện mọi cập nhật HĐH có sẵn. Sau khi cập nhật hệ điều hành hoàn tất, nâng cấp lên từng phiên bản chính: 5,6 đến 5,7 và sau đó là 5,7 đến 8.0. Các phiên bản MySQL DB được tạo trước ngày 24 tháng 4 năm 2014, hiển thị bản cập nhật hệ điều hành có sẵn cho đến khi bản cập nhật được áp dụng. Để biết thêm thông tin về cập nhật hệ điều hành, hãy xem áp dụng các bản cập nhật cho một thể hiện DB.

SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;

PrecheCks để nâng cấp từ MySQL 5,7 lên 8.0

Rollback sau khi không nâng cấp từ MySQL 5.7 lên 8.0

  • Nâng cấp phiên bản chính có thể chứa các thay đổi cơ sở dữ liệu không tương thích ngược với các ứng dụng hiện có. Do đó, Amazon RDS không tự động nâng cấp phiên bản chính; Bạn phải sửa đổi thủ công phiên bản DB của bạn. Chúng tôi khuyên bạn nên kiểm tra kỹ lưỡng mọi nâng cấp trước khi áp dụng nó vào các trường hợp sản xuất của bạn.

  • Để thực hiện nâng cấp phiên bản chính cho phiên bản MySQL phiên bản 5.6 dB trên Amazon RDS lên MySQL phiên bản 5.7 trở lên, trước tiên hãy thực hiện mọi cập nhật HĐH có sẵn. Sau khi cập nhật hệ điều hành hoàn tất, nâng cấp lên từng phiên bản chính: 5,6 đến 5,7 và sau đó là 5,7 đến 8.0. Các phiên bản MySQL DB được tạo trước ngày 24 tháng 4 năm 2014, hiển thị bản cập nhật hệ điều hành có sẵn cho đến khi bản cập nhật được áp dụng. Để biết thêm thông tin về cập nhật hệ điều hành, hãy xem áp dụng các bản cập nhật cho một thể hiện DB.

  • Trong quá trình nâng cấp phiên bản chính của MySQL, Amazon RDS chạy nhị phân MySQL

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    0 để nâng cấp các bảng, nếu cần thiết. Ngoài ra, Amazon RDS làm trống các bảng
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    1 và
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2 trong quá trình nâng cấp phiên bản chính. Để lưu giữ thông tin nhật ký, hãy lưu nội dung nhật ký trước khi nâng cấp phiên bản chính.

  • Các nâng cấp phiên bản chính của MySQL thường hoàn thành trong khoảng 10 phút. Một số nâng cấp có thể mất nhiều thời gian hơn do kích thước lớp thể hiện DB hoặc vì trường hợp không tuân theo các hướng dẫn hoạt động nhất định trong các thực tiễn tốt nhất cho Amazon RDS. Nếu bạn nâng cấp một thể hiện DB từ bảng điều khiển Amazon RDS, trạng thái của cá thể DB cho biết khi nào nâng cấp hoàn tất. Nếu bạn nâng cấp bằng giao diện dòng lệnh AWS (AWS CLI), hãy sử dụng lệnh mô tả-db-instances và kiểm tra giá trị

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3.

  • MySQL Phiên bản 5.6.4 đã giới thiệu một định dạng ngày và thời gian mới cho các cột

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    4,
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    5 và
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 cho phép các thành phần phân số theo giá trị ngày và thời gian. Khi nâng cấp thể hiện DB lên MySQL phiên bản 5.7, MySQL buộc chuyển đổi tất cả các loại cột ngày và thời gian sang định dạng mới.

    Bởi vì việc chuyển đổi này xây dựng lại bảng của bạn, có thể mất một khoảng thời gian đáng kể để hoàn thành việc nâng cấp phiên bản DB. Việc chuyển đổi bắt buộc xảy ra cho bất kỳ trường hợp DB nào đang chạy phiên bản trước phiên bản MySQL 5.6.4. Nó cũng xảy ra đối với bất kỳ trường hợp DB nào được nâng cấp từ phiên bản trước phiên bản MySQL 5.6.4 lên phiên bản khác 5,7.Keywords and reserved words in the MySQL documentation.

  • Nếu phiên bản DB của bạn chạy phiên bản trước phiên bản MySQL 5.6.4 hoặc được nâng cấp từ phiên bản trước 5.6.4, chúng tôi đề xuất một bước bổ sung. Trong những trường hợp này, chúng tôi khuyên bạn nên chuyển đổi các cột

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    4,
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    5 và
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 trong cơ sở dữ liệu của bạn trước khi nâng cấp phiên bản DB của bạn lên phiên bản MySQL 5.7. Chuyển đổi này có thể giảm đáng kể lượng thời gian cần thiết để nâng cấp thể hiện DB lên phiên bản MySQL 5.7. Để nâng cấp các cột ngày và giờ của bạn lên định dạng mới, hãy ban hành lực
    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    0; lệnh cho mỗi bảng chứa các cột ngày hoặc thời gian. Vì thay đổi bảng khóa bảng là chỉ đọc, chúng tôi khuyên bạn nên thực hiện bản cập nhật này trong cửa sổ bảo trì.

  • Để tìm tất cả các bảng trong cơ sở dữ liệu của bạn có các cột

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    4,
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    5 hoặc
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version version-number ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 và tạo lực
    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    4; lệnh cho mỗi bảng, sử dụng truy vấn sau.

  • MySQL 8.0 bao gồm một số khả năng không tương thích với MySQL 5.7. Những sự không tương thích này có thể gây ra vấn đề trong quá trình nâng cấp từ MySQL 5.7 lên MySQL 8.0. Vì vậy, một số chuẩn bị có thể được yêu cầu trên cơ sở dữ liệu của bạn để nâng cấp thành công. Sau đây là danh sách chung của những điều không tương thích này:

  • Trước khi nâng cấp lên MySQL 8.0.13 trở lên, không có phân vùng bảng nào nằm trong các không gian bảng InnoDB được chia sẻ.

  • Không được có các truy vấn và định nghĩa chương trình được lưu trữ từ MySQL 8.0.12 hoặc thấp hơn sử dụng vòng loại

    aws rds describe-db-engine-versions \
      --engine mysql \
      --engine-version 8.0.23 \
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    9 hoặc
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    0 cho các điều khoản
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    1.

  • Cài đặt MySQL 5.7 của bạn không được sử dụng các tính năng không được hỗ trợ trong MySQL 8.0.

    Để biết thêm thông tin, hãy xem các tính năng bị xóa trong MySQL 8.0 trong tài liệu MySQL. Features removed in MySQL 8.0 in the MySQL documentation.

  • Không được có tên ràng buộc khóa nước ngoài dài hơn 64 ký tự.

  • Để hỗ trợ Unicode được cải thiện, hãy xem xét các đối tượng chuyển đổi sử dụng Charset

    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2 để sử dụng Charset
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3. Bộ ký tự
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2 được không dùng nữa. Ngoài ra, hãy xem xét sử dụng
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    3 cho các tài liệu tham khảo tập ký tự thay vì
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6, vì hiện tại
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    6 là bí danh cho ký tự
    aws rds describe-db-engine-versions ^
      --engine mysql ^
      --engine-version 8.0.23 ^
      --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
    2.

    Để biết thêm thông tin, hãy xem Bộ ký tự UTF8MB3 (mã hóa Unicode 3-byte UTF-8) trong tài liệu MySQL. The utf8mb3 character set (3-byte UTF-8 unicode encoding) in the MySQL documentation.

Khi bạn bắt đầu nâng cấp từ MySQL 5.7 lên 8.0, Amazon RDS sẽ tự động chạy Prechecks để phát hiện những điều không tương thích này. Để biết thông tin về việc nâng cấp lên MySQL 8.0, hãy xem nâng cấp MySQL trong tài liệu MySQL.Upgrading MySQL in the MySQL documentation.

Những prechecks là bắt buộc. Bạn không thể chọn bỏ qua chúng. Các prechecks cung cấp các lợi ích sau:

  • Chúng cho phép bạn tránh thời gian chết không có kế hoạch trong quá trình nâng cấp.

  • Nếu có sự không tương thích, Amazon RDS sẽ ngăn chặn việc nâng cấp và cung cấp nhật ký để bạn tìm hiểu về chúng. Sau đó, bạn có thể sử dụng nhật ký để chuẩn bị cơ sở dữ liệu của mình để nâng cấp lên MySQL 8.0 bằng cách loại bỏ sự không tương thích. Để biết thông tin chi tiết về việc loại bỏ sự không tương thích, hãy xem Chuẩn bị cài đặt của bạn để nâng cấp trong tài liệu MySQL và nâng cấp lên MySQL 8.0? Đây là những gì bạn cần biết ... trên blog máy chủ MySQL. Preparing your installation for upgrade in the MySQL documentation and Upgrading to MySQL 8.0? here is what you need to know... on the MySQL Server Blog.

Các prechecks bao gồm một số được bao gồm trong MySQL và một số được tạo ra bởi nhóm Amazon RDS. Để biết thông tin về Prechecks do MySQL cung cấp, hãy xem Tiện ích kiểm tra nâng cấp.Upgrade checker utility.

Các prechecks chạy trước khi thể hiện DB được dừng lại để nâng cấp, có nghĩa là chúng không gây ra bất kỳ thời gian chết nào khi họ chạy. Nếu Prechecks tìm thấy sự không tương thích, Amazon RDS sẽ tự động hủy bỏ nâng cấp trước khi dừng phiên bản DB. Amazon RDS cũng tạo ra một sự kiện cho sự không tương thích. Để biết thêm thông tin về các sự kiện của Amazon RDS, hãy xem làm việc với thông báo sự kiện của Amazon RDS.

Amazon RDS ghi lại thông tin chi tiết về từng sự không tương thích trong tệp nhật ký

aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.23 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
9. Trong hầu hết các trường hợp, mục nhật ký bao gồm một liên kết đến tài liệu MySQL để sửa lỗi không tương thích. Để biết thêm thông tin về việc xem các tệp nhật ký, hãy xem xem và liệt kê các tệp nhật ký cơ sở dữ liệu.

Do tính chất của các prechecks, họ phân tích các đối tượng trong cơ sở dữ liệu của bạn. Phân tích này dẫn đến tiêu thụ tài nguyên và tăng thời gian nâng cấp hoàn thành.

Amazon RDS chạy tất cả các prechecks này chỉ để nâng cấp từ MySQL 5.7 lên MySQL 8.0. Để nâng cấp từ MySQL 5.6 lên MySQL 5.7, Prechecks bị giới hạn để xác nhận rằng không có bảng mồ côi và có đủ không gian lưu trữ để xây dựng lại bảng. Prechecks không chạy để nâng cấp để phát hành thấp hơn MySQL 5.7.

Rollback sau khi không nâng cấp từ MySQL 5.7 lên 8.0

Khi bạn nâng cấp phiên bản DB từ MySQL phiên bản 5.7 lên MySQL phiên bản 8.0, việc nâng cấp có thể thất bại. Cụ thể, nó có thể thất bại nếu từ điển dữ liệu chứa những điều không tương thích không bị bắt bởi các prechecks. Trong trường hợp này, cơ sở dữ liệu không thể khởi động thành công trong phiên bản MySQL 8.0 mới. Tại thời điểm này, Amazon RDS quay lại các thay đổi được thực hiện để nâng cấp. Sau khi quay lại, phiên bản DB MySQL đang chạy MySQL phiên bản 5.7. Khi một bản nâng cấp thất bại và được quay lại, Amazon RDS sẽ tạo ra một sự kiện với ID sự kiện RDS-EVENT-0188.

Thông thường, việc nâng cấp không thành công vì có sự không tương thích trong siêu dữ liệu giữa các cơ sở dữ liệu trong phiên bản DB của bạn và phiên bản MySQL đích. Khi nâng cấp không thành công, bạn có thể xem chi tiết về những điều không tương thích này trong tệp

SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;
0. Giải quyết sự không tương thích trước khi cố gắng nâng cấp một lần nữa.

Trong quá trình nâng cấp và rollback không thành công, phiên bản DB của bạn được khởi động lại. Bất kỳ thay đổi tham số đang chờ xử lý được áp dụng trong quá trình khởi động lại và tồn tại sau khi quay lại.

Để biết thêm thông tin về việc nâng cấp lên MySQL 8.0, hãy xem các chủ đề sau trong tài liệu MySQL:

  • Chuẩn bị cài đặt của bạn để nâng cấp

  • Nâng cấp lên MySQL 8.0? Đây là tất cả những gì bạn cần biết…

Hiện tại, Rollback tự động sau khi nâng cấp thất bại chỉ được hỗ trợ cho các nâng cấp phiên bản chính của MySQL 5.7 đến 8.0.

Kiểm tra nâng cấp

Trước khi bạn thực hiện nâng cấp phiên bản chính trên phiên bản DB của mình, hãy kiểm tra kỹ lưỡng cơ sở dữ liệu của bạn để tương thích với phiên bản mới. Ngoài ra, kiểm tra kỹ lưỡng tất cả các ứng dụng truy cập cơ sở dữ liệu để tương thích với phiên bản mới. Chúng tôi khuyên bạn nên sử dụng quy trình sau.

Để kiểm tra nâng cấp phiên bản chính

  1. Xem lại tài liệu nâng cấp cho phiên bản mới của công cụ cơ sở dữ liệu để xem liệu có sự cố tương thích nào có thể ảnh hưởng đến cơ sở dữ liệu hoặc ứng dụng của bạn không:

    • Thay đổi trong MySQL 5.6

    • Thay đổi trong MySQL 5.7

    • Thay đổi trong MySQL 8.0

  2. Nếu phiên bản DB của bạn là thành viên của nhóm tham số DB tùy chỉnh, hãy tạo nhóm tham số DB mới với các cài đặt hiện tại của bạn tương thích với phiên bản chính mới. Chỉ định nhóm tham số DB mới khi bạn nâng cấp phiên bản kiểm tra của mình, do đó, kiểm tra nâng cấp của bạn đảm bảo rằng nó hoạt động chính xác. Để biết thêm thông tin về việc tạo nhóm tham số DB, hãy xem làm việc với các nhóm tham số.

  3. Tạo một ảnh chụp nhanh DB của thể hiện DB để được nâng cấp. Để biết thêm thông tin, hãy xem Tạo ảnh chụp nhanh DB.

  4. Khôi phục ảnh chụp nhanh DB để tạo phiên bản DB thử nghiệm mới. Để biết thêm thông tin, hãy xem khôi phục từ ảnh chụp nhanh DB.

  5. Sửa đổi phiên bản DB thử nghiệm mới này để nâng cấp nó lên phiên bản mới, sử dụng một trong các phương thức chi tiết sau đây. Nếu bạn đã tạo một nhóm tham số mới trong bước 2, chỉ định nhóm tham số đó.

  6. Đánh giá lưu trữ được sử dụng bởi trường hợp nâng cấp để xác định xem việc nâng cấp có yêu cầu lưu trữ bổ sung hay không.

  7. Chạy càng nhiều bài kiểm tra đảm bảo chất lượng của bạn so với phiên bản DB được nâng cấp khi cần thiết để đảm bảo rằng cơ sở dữ liệu và ứng dụng của bạn hoạt động chính xác với phiên bản mới. Thực hiện bất kỳ thử nghiệm mới nào cần thiết để đánh giá tác động của bất kỳ vấn đề tương thích nào mà bạn đã xác định trong Bước 1. Kiểm tra tất cả các quy trình và chức năng được lưu trữ. Các phiên bản kiểm tra trực tiếp của các ứng dụng của bạn thành phiên bản DB được nâng cấp.

  8. Nếu tất cả các thử nghiệm vượt qua, sau đó thực hiện nâng cấp trên thể hiện DB sản xuất của bạn. Chúng tôi khuyên bạn nên không cho phép các hoạt động ghi vào thể hiện DB cho đến khi bạn xác nhận rằng mọi thứ đều hoạt động chính xác.

Nâng cấp phiên bản MySQL DB

Để biết thông tin về tự động hoặc tự động nâng cấp phiên bản MySQL DB, hãy xem nâng cấp phiên bản động cơ thể hiện DB.

Nâng cấp phiên bản nhỏ tự động cho MySQL

Nếu bạn chỉ định các cài đặt sau khi tạo hoặc sửa đổi phiên bản DB, bạn có thể tự động nâng cấp thể hiện DB.

  • Cài đặt nâng cấp phiên bản nhỏ tự động được bật.Auto minor version upgrade setting is enabled.

  • Cài đặt thời gian lưu dự phòng lớn hơn 0.Backup retention period setting is greater than 0.

Trong bảng điều khiển quản lý AWS, các cài đặt này nằm trong cấu hình bổ sung. Hình ảnh sau đây cho thấy cài đặt nâng cấp phiên bản nhỏ tự động.Additional configuration. The following image shows the Auto minor version upgrade setting.

Hướng dẫn how to upgrade mysql minor version - cách nâng cấp phiên bản nhỏ của mysql

Để biết thêm thông tin về các cài đặt này, hãy xem Cài đặt cho các phiên bản DB.

Đối với một số RDS cho các phiên bản chính của MySQL ở một số vùng AWS, một phiên bản nhỏ được RDS chỉ định là phiên bản nâng cấp tự động. Sau khi một phiên bản nhỏ đã được Amazon RDS kiểm tra và phê duyệt, việc nâng cấp phiên bản nhỏ sẽ tự động xảy ra trong cửa sổ bảo trì của bạn. RDS không tự động đặt các phiên bản nhỏ được phát hành mới hơn làm phiên bản nâng cấp tự động. Trước khi RDS chỉ định phiên bản nâng cấp tự động mới hơn, một số tiêu chí được xem xét, chẳng hạn như sau:

  • Các vấn đề bảo mật đã biết

  • Lỗi trong phiên bản cộng đồng MySQL

  • Tổng thể sự ổn định của hạm đội kể từ khi phiên bản nhỏ được phát hành

Bạn có thể sử dụng lệnh AWS CLI sau đây để xác định phiên bản mục tiêu nâng cấp nhỏ tự động hiện tại cho phiên bản nhỏ MySQL được chỉ định trong một vùng AWS cụ thể.

Đối với Linux, MacOS hoặc Unix:

aws rds describe-db-engine-versions \
--engine mysql \
--engine-version minor-version \
--region region \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output text

Cho cửa sổ:

aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version minor-version ^
--region region ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output text

Ví dụ, lệnh AWS CLI sau đây xác định mục tiêu nâng cấp nhỏ tự động cho phiên bản nhỏ của MySQL phiên bản 8.0.11 tại khu vực AWS của Hoa Kỳ (Ohio) (US-East-2).

Đối với Linux, MacOS hoặc Unix:

aws rds describe-db-engine-versions \
--engine mysql \
--engine-version 8.0.11 \
--region us-east-2 \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output table

Cho cửa sổ:

aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version 8.0.11 ^
--region us-east-2 ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output table

Ví dụ, lệnh AWS CLI sau đây xác định mục tiêu nâng cấp nhỏ tự động cho phiên bản nhỏ của MySQL phiên bản 8.0.11 tại khu vực AWS của Hoa Kỳ (Ohio) (US-East-2).

----------------------------------
|    DescribeDBEngineVersions    |
+--------------+-----------------+
|  AutoUpgrade |  EngineVersion  |
+--------------+-----------------+
|  False       |  8.0.15         |
|  False       |  8.0.16         |
|  False       |  8.0.17         |
|  False       |  8.0.19         |
|  False       |  8.0.20         |
|  False       |  8.0.21         |
|  True        |  8.0.23         |
|  False       |  8.0.25         |
+--------------+-----------------+

Đầu ra của bạn tương tự như sau.

Trong ví dụ này, giá trị

SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;
1 là
SET show_old_temporals = ON;
   SELECT table_schema, table_name,column_name, column_type
   FROM information_schema.columns
   WHERE column_type LIKE '%/* 5.5 binary format */';
   SET show_old_temporals = OFF;
2 cho phiên bản MySQL 8.0,0.23. Vì vậy, mục tiêu nâng cấp nhỏ tự động là MySQL phiên bản 8.0.23, được tô sáng trong đầu ra.

  • Cài đặt nâng cấp phiên bản nhỏ tự động được bật.Auto minor version upgrade setting is enabled.

  • Cài đặt thời gian lưu dự phòng lớn hơn 0.Backup retention period setting is greater than 0.

  • Trong bảng điều khiển quản lý AWS, các cài đặt này nằm trong cấu hình bổ sung. Hình ảnh sau đây cho thấy cài đặt nâng cấp phiên bản nhỏ tự động.

Để biết thêm thông tin về các cài đặt này, hãy xem Cài đặt cho các phiên bản DB.

Đối với một số RDS cho các phiên bản chính của MySQL ở một số vùng AWS, một phiên bản nhỏ được RDS chỉ định là phiên bản nâng cấp tự động. Sau khi một phiên bản nhỏ đã được Amazon RDS kiểm tra và phê duyệt, việc nâng cấp phiên bản nhỏ sẽ tự động xảy ra trong cửa sổ bảo trì của bạn. RDS không tự động đặt các phiên bản nhỏ được phát hành mới hơn làm phiên bản nâng cấp tự động. Trước khi RDS chỉ định phiên bản nâng cấp tự động mới hơn, một số tiêu chí được xem xét, chẳng hạn như sau:

Các vấn đề bảo mật đã biết

Bằng cách sử dụng bản sao đọc, bạn có thể thực hiện hầu hết các bước bảo trì trước thời hạn và giảm thiểu các thay đổi cần thiết trong thời gian ngừng hoạt động thực tế. Với kỹ thuật này, bạn có thể kiểm tra và chuẩn bị thể hiện DB mới mà không thực hiện bất kỳ thay đổi nào đối với thể hiện DB hiện tại của bạn.

Quy trình sau đây hiển thị một ví dụ về việc nâng cấp từ phiên bản MySQL 5.7 lên phiên bản MySQL 8.0. Bạn có thể sử dụng các bước chung tương tự để nâng cấp lên các phiên bản chính khác.

Để nâng cấp cơ sở dữ liệu MySQL trong khi phiên bản DB được sử dụng

  1. Đăng nhập vào bảng điều khiển quản lý AWS và mở bảng điều khiển Amazon RDS tại https://console.aws.amazon.com/rds/.https://console.aws.amazon.com/rds/.

  2. Tạo bản sao đọc bản sao MySQL 5.7 dB của bạn. Quá trình này tạo ra một bản sao có thể nâng cấp của cơ sở dữ liệu của bạn. Các bản sao đọc khác của thể hiện DB cũng có thể tồn tại.

    1. Trong bảng điều khiển, chọn cơ sở dữ liệu và sau đó chọn phiên bản DB mà bạn muốn nâng cấp.Databases, and then choose the DB instance that you want to upgrade.

    2. Đối với hành động, chọn Tạo Read Replica.Actions, choose Create read replica.

    3. Cung cấp một giá trị cho định danh thể hiện DB cho bản sao đọc của bạn và đảm bảo rằng lớp thể hiện DB và các cài đặt khác phù hợp với phiên bản MySQL 5.7 dB của bạn.DB instance identifier for your read replica and ensure that the DB instance class and other settings match your MySQL 5.7 DB instance.

    4. Chọn Tạo Read Replica.Create read replica.

  3. .Status shows Available, convert the read replica into a Multi-AZ deployment and enable backups.

    Theo mặc định, một bản sao đọc được tạo dưới dạng triển khai một-AL với các bản sao lưu bị vô hiệu hóa. Bởi vì bản sao đọc cuối cùng sẽ trở thành phiên bản DB sản xuất, nên đó là một thực tế tốt nhất để định cấu hình triển khai đa AA và kích hoạt bản sao lưu ngay bây giờ.

    1. Trong bảng điều khiển, chọn cơ sở dữ liệu và sau đó chọn bản sao đọc mà bạn vừa tạo.Databases, and then choose the read replica that you just created.

    2. Chọn Sửa đổi.Modify.

    3. Để triển khai đa AA, chọn Tạo một phiên bản chờ.Multi-AZ deployment, choose Create a standby instance.

    4. Đối với thời gian lưu dự phòng, chọn một giá trị khác biệt tích cực, ví dụ 3 ngày, sau đó chọn tiếp tục.Backup Retention Period, choose a positive nonzero value, for example 3 days, and then choose Continue.

    5. Để lập lịch sửa đổi, chọn Áp dụng ngay lập tức.Scheduling of modifications, choose Apply immediately.

    6. Chọn Sửa đổi phiên bản DB.Modify DB instance.

  4. Khi trạng thái bản sao đọc có sẵn, hãy nâng cấp bản sao đọc lên MySQL 8.0:Status shows Available, upgrade the read replica to MySQL 8.0:

    1. Trong bảng điều khiển, chọn cơ sở dữ liệu và sau đó chọn bản sao đọc mà bạn vừa tạo.Databases, and then choose the read replica that you just created.

    2. Chọn Sửa đổi.Modify.

    3. Để triển khai đa AA, chọn Tạo một phiên bản chờ.DB engine version, choose the MySQL 8.0 version to upgrade to, and then choose Continue.

    4. Để lập lịch sửa đổi, chọn Áp dụng ngay lập tức.Scheduling of modifications, choose Apply immediately.

    5. Chọn Sửa đổi phiên bản DB.Modify DB instance to start the upgrade.

  5. Khi trạng thái bản sao đọc có sẵn, hãy nâng cấp bản sao đọc lên MySQL 8.0:Status shows Available, verify that the upgraded read replica is up-to-date with the source MySQL 5.7 DB instance. You can do this by connecting to the read replica and issuing the

    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    3 command. If the
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    4 field is
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    5, then replication is up-to-date.

    Đối với phiên bản DB Engine, chọn phiên bản MySQL 8.0 để nâng cấp lên, sau đó chọn Tiếp tục.

  6. Chọn Sửa đổi phiên bản DB để bắt đầu nâng cấp.

    Khi bản nâng cấp hoàn tất và trạng thái hiển thị có sẵn, hãy xác minh rằng bản sao đọc được nâng cấp được cập nhật với phiên bản MySQL 5.7 dB nguồn. Bạn có thể làm điều này bằng cách kết nối với bản sao đọc và ban hành lệnh

    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    3. Nếu trường
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    4 là
    SET show_old_temporals = ON;
       SELECT table_schema, table_name,column_name, column_type
       FROM information_schema.columns
       WHERE column_type LIKE '%/* 5.5 binary format */';
       SET show_old_temporals = OFF;
    5, thì việc sao chép được cập nhật.

    1. Các phiên bản trước của MySQL đã sử dụng

      SET show_old_temporals = ON;
         SELECT table_schema, table_name,column_name, column_type
         FROM information_schema.columns
         WHERE column_type LIKE '%/* 5.5 binary format */';
         SET show_old_temporals = OFF;
      6 thay vì
      SET show_old_temporals = ON;
         SELECT table_schema, table_name,column_name, column_type
         FROM information_schema.columns
         WHERE column_type LIKE '%/* 5.5 binary format */';
         SET show_old_temporals = OFF;
      3. Nếu bạn đang sử dụng phiên bản MySQL trước 8.0.23, thì hãy sử dụng
      SET show_old_temporals = ON;
         SELECT table_schema, table_name,column_name, column_type
         FROM information_schema.columns
         WHERE column_type LIKE '%/* 5.5 binary format */';
         SET show_old_temporals = OFF;
      6.Databases, and then choose the read replica that you just upgraded.

    2. Đối với hành động, chọn Tạo Read Replica.Actions, choose Create read replica.

    3. Cung cấp một giá trị cho định danh thể hiện DB cho bản sao đọc của bạn và đảm bảo rằng lớp thể hiện DB và các cài đặt khác phù hợp với phiên bản MySQL 5.7 dB của bạn.DB instance identifier for your read replica and ensure that the DB instance class and other settings match your MySQL 5.7 DB instance.

    4. Chọn Tạo Read Replica.Create read replica.

  7. .

    Theo mặc định, một bản sao đọc được tạo dưới dạng triển khai một-AL với các bản sao lưu bị vô hiệu hóa. Bởi vì bản sao đọc cuối cùng sẽ trở thành phiên bản DB sản xuất, nên đó là một thực tế tốt nhất để định cấu hình triển khai đa AA và kích hoạt bản sao lưu ngay bây giờ.

    1. Trong bảng điều khiển, chọn cơ sở dữ liệu và sau đó chọn bản sao đọc mà bạn vừa tạo.

    2. Chọn Sửa đổi.

    3. Để triển khai đa AA, chọn Tạo một phiên bản chờ.Databases, and then choose the read replica.

    4. Chọn Sửa đổi.Modify.

    5. Để triển khai đa AA, chọn Tạo một phiên bản chờ.DB parameter group, choose the MySQL 8.0 DB parameter group you just created, and then choose Continue.

    6. Để lập lịch sửa đổi, chọn Áp dụng ngay lập tức.Scheduling of modifications, choose Apply immediately.

    7. Chọn Sửa đổi phiên bản DB.Modify DB instance to start the upgrade.

  8. Khi trạng thái bản sao đọc có sẵn, hãy nâng cấp bản sao đọc lên MySQL 8.0:

    Đối với phiên bản DB Engine, chọn phiên bản MySQL 8.0 để nâng cấp lên, sau đó chọn Tiếp tục.

    Ngoài ra, chúng tôi khuyên bạn nên, trước khi quảng bá bản sao đọc MySQL 8.0 của bạn, bạn thực hiện tất cả các hoạt động ngôn ngữ định nghĩa dữ liệu cần thiết (DDL) trên bản sao MySQL 8.0 Read của bạn. Một ví dụ là tạo ra các chỉ mục. Cách tiếp cận này tránh các tác động tiêu cực đến hiệu suất của bản sao đọc MySQL 8.0 sau khi nó được quảng bá. Để quảng bá bản sao đọc, sử dụng quy trình sau.

    1. Trong bảng điều khiển, chọn cơ sở dữ liệu và sau đó chọn bản sao đọc mà bạn vừa nâng cấp.Databases, and then choose the read replica that you just upgraded.

    2. Đối với hành động, chọn quảng bá.Actions, choose Promote.

    3. Chọn Có để bật sao lưu tự động cho phiên bản Replica Replica. Để biết thêm thông tin, xem làm việc với các bản sao lưu.Yes to enable automated backups for the read replica instance. For more information, see Working with backups.

    4. Chọn tiếp tục.Continue.

    5. Chọn Quảng cáo Đọc bản sao.Promote Read Replica.

  9. Bây giờ bạn có một phiên bản nâng cấp của cơ sở dữ liệu MySQL của bạn. Tại thời điểm này, bạn có thể hướng các ứng dụng của mình đến phiên bản MySQL 8.0 dB mới.

Phiên bản nhỏ trong MySQL là gì?

*) Nâng cấp phiên bản nhỏ chỉ bao gồm các thay đổi tương thích ngược với các ứng dụng hiện có. Bạn có thể bắt đầu nâng cấp phiên bản nhỏ theo cách thủ công bằng cách sửa đổi phiên bản DB của bạn. Trước khi tiến hành trước, hãy sao lưu vật lý vào thời điểm này.Minor version upgrades include only changes that are backward-compatible with existing applications. You can initiate a minor version upgrade manually by modifying your DB instance. Before proceeding ahead take a physical backup at this point.

Tôi có thể cài đặt 2 phiên bản mysql không?

Điều này chỉ ra rằng sử dụng trình cài đặt cộng đồng MySQL, chúng tôi có thể cài đặt một phiên bản MySQL khác nhưng không thể cài đặt nhiều phiên bản của cùng một phiên bản. Để chạy nhiều phiên bản, phiên bản thứ hai của MySQL phải cài đặt dưới dạng dịch vụ Windows. Việc cài đặt phải được thực hiện thủ công bằng cách sử dụng dấu nhắc lệnh.using the MySQL community installer, we can install a different version of MySQL but cannot install multiple instances of the same version. To run multiple instances, the second instance of MySQL must install as a windows service. The installation must be performed manually using a command prompt.

Bạn có thể nâng cấp bỏ qua giữa các phiên bản MySQL không?

Nâng cấp lên bản phát hành mới nhất được khuyến nghị trước khi nâng cấp lên phiên bản tiếp theo.Ví dụ: nâng cấp lên bản phát hành MySQL 5.7 mới nhất trước khi nâng cấp lên MySQL 8.0.Nâng cấp mà các phiên bản bỏ qua không được hỗ trợ.Ví dụ, việc nâng cấp trực tiếp từ MySQL 5.6 lên 8.0 không được hỗ trợ.Upgrade that skips versions is not supported. For example, upgrading directly from MySQL 5.6 to 8.0 is not supported.

Tôi có thể nâng cấp thể hiện RDS không?

Đăng nhập vào bảng điều khiển quản lý AWS và mở bảng điều khiển Amazon RDS tại https://console.aws.amazon.com/rds/.Trong khung điều hướng, chọn cơ sở dữ liệu và sau đó chọn phiên bản DB mà bạn muốn nâng cấp.Chọn Sửa đổi.