Bài viết sau sẽ hướng dẫn nâng cấp MySQL trên giao diện cPanel và thao tác nâng cấp bằng dòng lệnh trên hệ điều hành CentOS.
1. Nâng cấp MySQL trên giao diện cPanel
* Lưu ý: Sau khi nâng cấp MySQL database rất dễ bị hỏng. Do đó điều quan trọng đầu tiên cần làm là backup lại tất cả database trước tiến hành nâng cấp (tham khảo bài "Các phương thức sao lưu cơ sở dữ liệu").
Bước 1: Đăng nhập vào WHM và đi đến Software => MySQL Upgrade
Bước 2: Chọn phiên bản MySQL cần nâng cấp và nhấn Next
Bước 3: Tick vào 2 ô trống và nhấn Continue để bắt đầu quá trình nâng cấp.
Dòng thứ 1 cảnh báo nên backup tất cả database trước khi tiến hành nâng cấp, dòng thứ hai thông báo sau khi đã nâng cấp lên thì không thể hạ phiên bản MySQL xuống được nữa.
Bước 4: Nếu sau khi quá trình nâng cấp bị lỗi và không start dịch vụ mysql lên được. Khách hàng nên đăng nhập bằng SSH vào server (Kết nối tới máy chủ qua SSH với chương trình Putty) và tiến hành xóa file /var/lib/mysql/ibdata1 đi bằng lệnh "rm -f /var/lib/mysql/ibdata1" sau đó start dịch vụ mysql lại.
Bước 5: Khách hàng cần kiểm tra tất cả xem database có bị hỏng không. Nếu kiểm tra bị hỏng khách hàng thử repair lại trước (Link tham khảo bài viết "Hướng dẫn nhận biết và xử lý khi cơ sở dữ liệu bị lỗi corrupted/crashed cần repair"). Trong trường hợp repair rồi những database vẫn bị lỗi, lúc đó khách hàng cần xóa database này đi và import lại database đã được backup trước đó (Hướng Dẫn Tạo - Xóa - Thay Đổi - Import - Export Database)
2. Hướng dẫn nâng cấp MySQL 5.5 thông qua giao diện dòng lệnh trên hệ điều hành CentOS
Bước 1: Backup tất cả database và file config của MySQL /etc/my.cnf
mysqldump --default-character-set=utf8 databasename > databasename_backup.sql
cp /etc/my.cnf /etc/my.cnf.bk
Bước 2: Xóa phiên bản mysql cũ: "yum remove mysql-*"
Bước 3: Tải reposity và cài đặt MySQL 5.5
Dành cho Centos 5.x:
rpm -Uvh http://mirrors.vinahost.vn/epel/5/i386/epel-release-5-4.noarch.rpm (dành cho CentOS 5.x 32bit)
rpm -Uvh http://mirrors.vinahost.vn/epel/5/x86_64/epel-release-5-4.noarch.rpm (dành cho CentOS 5.x 64bit)
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Dành cho Centos 6.x:
Dành cho Centos 6.x:
rpm -Uvh http://mirrors.vinahost.vn/epel/6/i386/epel-release-6-8.noarch.rpm (dành cho CentOS 6.x 32bit)
rpm -Uvh http://mirrors.vinahost.vn/epel/6/x86_64/epel-release-6-8.noarch.rpm (dành cho CentOS 6.x 64bit)
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Kiểm tra phiên bản MySQL trong repo:
yum --enablerepo=remi list mysql mysql-server
Trường hợp Centos 6 sau khi chạy lệnh trên gặp lỗi: "Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again" thì chạy thêm lệnh sau:
Trường hợp Centos 6 sau khi chạy lệnh trên gặp lỗi: "Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again" thì chạy thêm lệnh sau:
sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
Cài đặt MySQL:
yum install --enablerepo=remi mysql* mysql-server
Bước 4: Restore cấu hình và start mysql.
Restore lại flle backup /etc/my.cnf
cp -f /etc/my.cnf.bk /etc/my.cnf
Start mysql lên và start on boot
service mysqld start
chkconfig mysqld on
Chạy script upgrade mysql:
chkconfig mysqld on
Chạy script upgrade mysql:
mysql_upgrade -u root -p
Đặt password root cho MySQL:
Đặt password root cho MySQL:
/usr/bin/mysqladmin -u root password 'yourpassword'
Kiểm tra phiên bản MySQL:
Kiểm tra phiên bản MySQL:
mysql --version
Bước 5: Fix lỗi và restore database
Kiểm tra và fix lỗi tất cả database:
Bước 5: Fix lỗi và restore database
Kiểm tra và fix lỗi tất cả database:
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
Trong trường hợp repair rồi những database vẫn bị lỗi, lúc đó khách hàng cần xóa database này đi và import lại database đã được backup trước đó
Trong trường hợp repair rồi những database vẫn bị lỗi, lúc đó khách hàng cần xóa database này đi và import lại database đã được backup trước đó
mysql -u root -p
Xóa tên database bị hỏng đi:
drop database databasename;
Tạo tạo database với tên như cũ:
create database databasename;
exit
drop database databasename;
Tạo tạo database với tên như cũ:
create database databasename;
exit
Import database backup lại dưới dạng utf8:
mysql --default-character-set=utf8 databasename < /đường_dẫn_tới_database_backup.sql