Mỗi khi bạn nâng cấp MySQL, bạn nên thực thi mysql_upgrade, tìm kiếm sự không tương thích với máy chủ MySQL đã nâng cấp
Nó nâng cấp các bảng hệ thống trong lược đồ
mysql
để bạn có thể tận dụng các đặc quyền hoặc khả năng mới có thể đã được thêm vàoNó nâng cấp Lược đồ hiệu suất
Nó kiểm tra lược đồ người dùng
Nếu mysql_upgrade thấy rằng một bảng có khả năng không tương thích, nó sẽ thực hiện kiểm tra bảng và, nếu phát hiện thấy sự cố, sẽ thử sửa chữa bảng. Nếu bảng không thể sửa chữa được, hãy xem Phần 2. 11. 10, “Xây dựng lại hoặc sửa chữa các bảng hoặc chỉ mục” cho các chiến lược sửa chữa bảng thủ công
Nếu bạn cài đặt MySQL từ các gói RPM trên Linux, bạn phải cài đặt RPM của máy chủ và máy khách. mysql_upgrade được bao gồm trong RPM của máy chủ nhưng yêu cầu RPM của máy khách vì cái sau bao gồm mysqlcheck. [Xem Phần 2. 5. 5, “Cài đặt MySQL trên Linux bằng gói RPM của Oracle”. ]
Trên Windows, bạn phải chạy mysql_upgrade với quyền quản trị viên. Bạn có thể thực hiện việc này bằng cách chạy Dấu nhắc Lệnh với tư cách Quản trị viên và chạy lệnh. Không làm như vậy có thể dẫn đến việc nâng cấp không thực hiện chính xác
Bạn phải luôn sao lưu cài đặt MySQL hiện tại của mình trước khi thực hiện nâng cấp. Xem Phần 7. 2, “Phương pháp sao lưu cơ sở dữ liệu”
Một số điểm không tương thích khi nâng cấp có thể yêu cầu xử lý đặc biệt trước khi nâng cấp cài đặt MySQL của bạn và chạy mysql_upgrade. Xem Phần 2. 11, “Nâng cấp MySQL”, để biết hướng dẫn xác định xem có bất kỳ sự không tương thích nào như vậy áp dụng cho cài đặt của bạn hay không và cách xử lý chúng
Sử dụng mysql_upgrade như thế này
Đảm bảo rằng các máy chủ đang chạy
Gọi mysql_upgrade để nâng cấp các bảng hệ thống trong lược đồ
mysql
và kiểm tra, sửa chữa các bảng trong các lược đồ khácmysql_upgrade [
options
]Dừng máy chủ và khởi động lại để mọi thay đổi trong bảng hệ thống có hiệu lực
Nếu bạn có nhiều phiên bản máy chủ MySQL để nâng cấp, hãy gọi mysql_upgrade với các tham số kết nối phù hợp để kết nối với từng máy chủ mong muốn. Ví dụ: với các máy chủ chạy trên máy chủ cục bộ trên các phần từ 3306 đến 3308, hãy nâng cấp từng phần trong số chúng bằng cách kết nối với cổng thích hợp
mysql_upgrade --protocol=tcp -P 3306 [other_options
] mysql_upgrade --protocol=tcp -P 3307 [other_options
] mysql_upgrade --protocol=tcp -P 3308 [other_options
]
Đối với các kết nối máy chủ cục bộ trên Unix, tùy chọn buộc kết nối bằng TCP/IP thay vì tệp ổ cắm Unix
Theo mặc định, mysql_upgrade chạy với tư cách là người dùng MySQL root
. Nếu mật khẩu root
đã hết hạn khi bạn chạy mysql_upgrade, bạn sẽ thấy thông báo cho biết mật khẩu của bạn đã hết hạn và kết quả là mysql_upgrade không thành công. Để sửa lỗi này, hãy đặt lại mật khẩu root
để hủy hết hạn và chạy lại mysql_upgrade
$>mysql -u root -p
Enter password:****
SET PASSWORD = PASSWORD['root-password'];
mysql>quit
$>mysql_upgrade [
options
]
mysql_upgrade thực thi các lệnh sau để kiểm tra và sửa chữa các bảng cũng như nâng cấp các bảng hệ thống
mysqlcheck --no-defaults --databases --fix-db-names --fix-table-names mysql mysqlcheck --no-defaults --check-upgrade --databases --auto-repair mysql mysql < fix_priv_tables mysqlcheck --no-defaults --all-databases --skip-database=mysql --fix-db-names --fix-table-names mysqlcheck --no-defaults --check-upgrade --all-databases --skip-database=mysql --auto-repair
Lưu ý về các lệnh trước
mysql_upgrade đánh dấu tất cả các bảng đã kiểm tra và sửa chữa bằng số phiên bản MySQL hiện tại. Điều này đảm bảo rằng lần sau khi bạn chạy mysql_upgrade với cùng một phiên bản của máy chủ, có thể xác định xem có cần kiểm tra hoặc sửa chữa lại một bảng đã cho hay không
mysql_upgrade lưu số phiên bản MySQL trong tệp có tên
mysql_upgrade --protocol=tcp -P 3306 [0 trong thư mục dữ liệu. Điều này được sử dụng để kiểm tra nhanh xem tất cả các bảng đã được kiểm tra cho bản phát hành này hay chưa để có thể bỏ qua việc kiểm tra bảng. Để bỏ qua tệp này và thực hiện kiểm tra bất kể, hãy sử dụng tùy chọnother_options
] mysql_upgrade --protocol=tcp -P 3307 [other_options
] mysql_upgrade --protocol=tcp -P 3308 [other_options
]
mysql_upgrade không nâng cấp nội dung của bảng múi giờ hoặc bảng trợ giúp. Để biết hướng dẫn nâng cấp, hãy xem Phần 5. 1. 13, “Hỗ trợ múi giờ của máy chủ MySQL” và Phần 5. 1. 14, “Hỗ trợ trợ giúp phía máy chủ”
mysql_upgrade hỗ trợ các tùy chọn sau, có thể được chỉ định trên dòng lệnh hoặc trong nhóm
mysql_upgrade --protocol=tcp -P 3306 [2 vàother_options
] mysql_upgrade --protocol=tcp -P 3307 [other_options
] mysql_upgrade --protocol=tcp -P 3308 [other_options
]
mysql_upgrade --protocol=tcp -P 3306 [3 của tệp tùy chọn. Các tùy chọn không được công nhận được chuyển đến mysqlcheck. Để biết thông tin về các tệp tùy chọn, hãy xem Phần 4. 2. 2. 2, “Sử dụng tệp tùy chọn”other_options
] mysql_upgrade --protocol=tcp -P 3307 [other_options
] mysql_upgrade --protocol=tcp -P 3308 [other_options
]