Thay đổi không tương thích: Kể từ MySQL 5.7.5, hỗ trợ mật khẩu sử dụng định dạng băm mật khẩu trước 4 tuổi cũ hơn được xóa, liên quan đến các thay đổi sau. Các ứng dụng sử dụng bất kỳ tính năng nào không còn được hỗ trợ phải được sửa đổi.: As of MySQL 5.7.5, support for passwords that use the older pre-4.1 password hashing format is removed, which involves the following changes. Applications that use any feature no longer supported must be modified.
Plugin xác thực
mysql_old_password
đã sử dụng các giá trị băm mật khẩu trước 4,1 bị xóa. Các tài khoản sử dụng plugin này được vô hiệu hóa khi khởi động và máy chủ ghi một thông báo plugin không xác định của Google vào nhật ký lỗi. Để biết hướng dẫn về việc nâng cấp các tài khoản sử dụng plugin này, xem Phần & NBSP; 6.4.1.3, di chuyển ra khỏi mật khẩu trước 4,1 và plugin mysql_old_password.“unknown plugin” message to the error log. For instructions on upgrading accounts that use this plugin, see Section 6.4.1.3, “Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin”.Đối với biến hệ thống
old_passwords
, giá trị 1 [sản xuất các giá trị băm trước 4,1] không còn được phép.Tùy chọn
--secure-auth
cho các chương trình máy chủ và máy khách là mặc định, nhưng bây giờ là không có op. Nó không được chấp nhận; hy vọng nó sẽ được loại bỏ trong bản phát hành MySQL trong tương lai.Tùy chọn
--skip-secure-auth
cho máy chủ và các chương trình máy khách không còn được hỗ trợ và sử dụng nó tạo ra lỗi.Biến hệ thống
secure_auth
chỉ cho phép một giá trị là 1; Giá trị 0 không còn được phép.Hàm
OLD_PASSWORD[]
được loại bỏ.
Thay đổi không tương thích: Trong MySQL 5.6.6, loại dữ liệu
0 2 chữ số đã bị phản đối. Trong MySQL 5.7.5, hỗ trợ choSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 bị xóa. Sau khi bạn nâng cấp lên MySQL 5.7.5 trở lên, bất kỳ cộtSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 2 chữ số nào còn lại phải được chuyển đổi thành các cộtSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
3 4 chữ số để có thể sử dụng được. Đối với các chiến lược chuyển đổi, xem Phần & NBSP; 11.2.5, Năm 2 chữ số [2] giới hạn và di chuyển sang năm chữ số 4 chữ số. Chạy mysql_upgrade sau khi nâng cấp là một trong những chiến lược chuyển đổi có thể.: In MySQL 5.6.6, the 2-digitSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 data type was deprecated. In MySQL 5.7.5, support forSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 is removed. Once you upgrade to MySQL 5.7.5 or higher, any remaining 2-digitSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 columns must be converted to 4-digitSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
3 columns to become usable again. For conversion strategies, see Section 11.2.5, “2-Digit YEAR[2] Limitations and Migrating to 4-Digit YEAR”. Running mysql_upgrade after upgrading is one of the possible conversion strategies.SET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
MYSQL 5.7.7,
4 báo cáo một bảng là cần xây dựng lại nếu nó chứa các cột tạm thời cũ ở định dạng trước 5.6.4 . Điều này giúp mysql_upgrade phát hiện và nâng cấp các bảng chứa các cột thời gian cũ. NếuSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
8 được bật,SET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 bỏ qua các cột tạm thời cũ có trong bảng; Do đó, mysql_upgrade không nâng cấp chúng.mysql_upgrade to detect and upgrade tables containing old temporal columns. If
8 is enabled,SET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
0 ignores the old temporal columns present in the table; consequently, mysql_upgrade does not upgrade them.Kể từ MySQL 5.7.7,
1 nâng cấp bảng nếu nó chứa các cột tạm thời cũ ở định dạng Pre-5.6.4 và biến hệ thống
8 bị vô hiệu hóa. NếuSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
8 được bật,SET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
4 bỏ qua các cột tạm thời cũ có trong bảng và không nâng cấp chúng.Để kiểm tra các bảng có chứa các cột thời gian như vậy và cần xây dựng lại, vô hiệu hóa
8 trước khi thực hiệnSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
4.SET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
Để nâng cấp các bảng có chứa các cột thời gian như vậy, hãy vô hiệu hóa
8 trước khi thực hiệnSET sql_mode = ''; CREATE TABLE t [d DATE DEFAULT 0]; SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES'; INSERT INTO t [d] VALUES[DEFAULT];
4 hoặc mysql_upgrade.mysql_upgrade.Thay đổi không tương thích: Kể từ MySQL 5.7.2, máy chủ yêu cầu các hàng tài khoản trong bảng hệ thống
9 phải có giá trị cột
0 không trống và vô hiệu hóa tài khoản có giá trị trống. Điều này yêu cầu bạn nâng cấp bảng2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
9 của mình để điền vào tất cả các giá trị
0. Kể từ MySQL 5.7.6, hãy sử dụng quy trình này:: As of MySQL 5.7.2, the server requires account rows in the2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
9 system table to have a nonempty
0 column value and disables accounts with an empty value. This requires that you upgrade your2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
9 table to fill in all
0 values. As of MySQL 5.7.6, use this procedure:2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
Nếu bạn có kế hoạch nâng cấp bằng thư mục dữ liệu từ cài đặt MySQL hiện tại của bạn:
Dừng máy chủ cũ [MySQL 5.6]
Nâng cấp các nhị phân MySQL tại chỗ bằng cách thay thế các nhị phân cũ bằng những nhị phân mới
Khởi động máy chủ MySQL 5.7 bình thường [không có tùy chọn đặc biệt]
Chạy MySQL_Upgrade để nâng cấp các bảng hệ thốngmysql_upgrade to upgrade the system tables
Khởi động lại máy chủ MySQL 5.7
Nếu bạn có kế hoạch nâng cấp bằng cách tải lại tệp kết xuất được tạo từ cài đặt MySQL hiện tại của bạn:
Để tạo tệp kết xuất, hãy chạy mysqldump với tùy chọn
3 và không có tùy chọn2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
4mysqldump with the2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
3 option and without the2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
4 option2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
Dừng máy chủ cũ [MySQL 5.6]
Nâng cấp các nhị phân MySQL tại chỗ bằng cách thay thế các nhị phân cũ bằng những nhị phân mới
Khởi động máy chủ MySQL 5.7 bình thường [không có tùy chọn đặc biệt]
Chạy MySQL_Upgrade để nâng cấp các bảng hệ thốngmysql <
5]2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
Chạy MySQL_Upgrade để nâng cấp các bảng hệ thốngmysql_upgrade to upgrade the system tables
Khởi động lại máy chủ MySQL 5.7
Nếu bạn có kế hoạch nâng cấp bằng cách tải lại tệp kết xuất được tạo từ cài đặt MySQL hiện tại của bạn:
Nếu bạn có kế hoạch nâng cấp bằng thư mục dữ liệu từ cài đặt MySQL hiện tại của bạn:
Dừng máy chủ cũ [MySQL 5.6]
Nâng cấp các nhị phân MySQL tại chỗ bằng cách thay thế các nhị phân cũ bằng những nhị phân mới
Khởi động máy chủ MySQL 5.7 bình thường [không có tùy chọn đặc biệt]
Chạy MySQL_Upgrade để nâng cấp các bảng hệ thốngmysql_upgrade to upgrade the system tables
Khởi động lại máy chủ MySQL 5.7
Nếu bạn có kế hoạch nâng cấp bằng cách tải lại tệp kết xuất được tạo từ cài đặt MySQL hiện tại của bạn:
Để tạo tệp kết xuất, hãy chạy mysqldump với tùy chọn
3 và không có tùy chọn2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
4mysqldump without the2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
4 option2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
Dừng máy chủ cũ [MySQL 5.6]
Nâng cấp các nhị phân MySQL tại chỗ bằng cách thay thế các nhị phân cũ bằng những nhị phân mới
Khởi động máy chủ MySQL 5.7 bình thường [không có tùy chọn đặc biệt]
Reload the dump file [mysql <
5]2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
Run mysql_upgrade to upgrade the system tables
Restart the server normally [without
6]2013-04-15T15:27:27 UTC 3998_2013-04-15T15:27:27 Query 3 0 0 root[root] @ localhost [127.0.0.1] localhost 127.0.0.1 select SELECT 1
mysql_upgrade runs by default as the MySQL
mysql_old_password
2 user. For the preceding procedures, if themysql_old_password
2 password is expired when you run mysql_upgrade, it displays a message informing you that your password is expired and that mysql_upgrade failed as a result. To correct this, reset themysql_old_password
2 password and run mysql_upgrade again:$> mysql -u root -p Enter password: **** ALTER USER USER[] IDENTIFIED BY 'root-password'; # MySQL 5.7.6 and up mysql> SET PASSWORD = PASSWORD['root-password']; # Before MySQL 5.7.6 mysql> quit $> mysql_upgrade -p Enter password: ****