1. Tổng quan
Trong bài này mình sẽ hướng dẫn các bạn cách chuyển MySQL sang MariaDB trên DirectAdmin cũng như cách để cài các bạn cài bản mới nhất của MariaDB.
Vì một lý do nào đó mà các bạn muốn sử dụng MariaDB hơn là MySQL như:
- Hỗ trợ nhiều công cụ lưu trữ hơn.
- Phát hành sau MySQL.
- Là một mã nguồn mở thật sự vì hiện tại MySQL chịu sự chi phối của oracle và không vận hành bởi cộng đồng.
- MariaDB được bảo trì bởi người tạo ra MySQL.
- Hoàn toàn tương thích với MySQL.
- Nhiều tính năng hay hơn.
2. So sánh kỹ thuật giữa MariaDB và MySQL
MariaDB | MySQL | |
Nhà phát triển | MariaDB Corporation AB (MariaDB Enterprise) và MariaDB Foundation (community MariaDB Server) | Oracle |
Phát hành lần đầu | 2009 | 1995 |
Phát hành hiện tại | 10.3.10, October 2018 | 8.0.12, July 2018 |
Giấy phép | Mã nguồn mở | Mã nguồn mở + độc quyền |
Phát triển | Mở | Đóng |
Công cụ lưu trữ | InnoDB MyISAM BLACKHOLE CSV MEMORY ARCHIVE MERGE ColumnStore MyRocks Aria SphinxSE TokuDB CONNECT SEQUENCE Spider Cassandra | InnoDB MyISAM BLACKHOLE CSV MEMORY ARCHIVE MERGE |
Quản lý SQL | HeidiSQL | MySQL Workbench |
Ngôn ngữ triển khai | C và C++ | C và C++ |
Hệ điều hành máy chủ | FreeBSD Linux Solaris Windows | FreeBSD Linux OS X Solaris Windows |
API | Proprietary native API ADO.NET JDBC ODBC | Proprietary native API ADO.NET JDBC ODBC |
Ngôn ngữ lập trình hỗ trợ | Ada C C# C++ D Eiffel Erlang Go Haskell Java JavaScript (Node.js) Objective-C OCaml Perl PHP Python Ruby Scheme Tcl | Ada C C# C++ D Delphi Eiffel Erlang Haskell Java JavaScript (Node.js) Objective-C OCaml Perl PHP Python Ruby Scheme Tcl |
Khách hàng | Booking.com, Wikipedia, Google, Canal+, ClubMed, Deutsche Telekom, La Poste, Virgin… | NASA, US Navy, Spotify, Netflix, Nokia, Joomla, Uber, PHP-Nuke, Tesla, Fujitsu… |
Thị trường | MariaDB mặc định trong LAMP | MySQL mặc định trong AppServ
|
3. Hướng dẫn chuyển MySQL sang MariaDB trên DirectAdmin
Để chuyển MySQL sang MariaDB trên DirectAdmin chúng ta cần thực hiện 3 bước sau.
Bước 1: SSH vào hệ thống DirectAdmin của bạn
Để chuyển MySQL sang MariaDB trên DirectAdmin, đầu tiên chúng ta cần SSH hoặc truy cập VPS hoặc máy chủ của bạn với quyền root trước. Nếu bạn chưa biết cách SSH vào VPS hoặc Server của bạn thì bạn có thể tham khảo bài viết hướng dẫn sau:
- Hướng dẫn đăng nhập vào VPS Linux với giao thức SSH
Sau khi đã SSH thành công chúng ta tiếp tục với bước 2 để bắt đầu quá trình dẫn chuyển MySQL sang MariaDB trên DirectAdmin.
Bước 2: Kiểm tra phiên bản MySQL đang sử dụng hiện tại
Việc kiểm tra cũng chỉ để chắc chắn rằng chúng ta đang sử dụng MySQL mà thôi, bởi vì nhiều trường hợp đã và đang chạy MariaDB rồi mà các bạn không biết. Để kiểm tra phiên bản Mysql hiện tại chúng ta sử dụng 1 lệnh sau.
mysqld -V
Hình dưới đây là kết quả của mình, với phiên bản đang cài hiện tại là 5.6.48.
Vậy là xong bước kiểm tra phiên bản MySQL đang sử dụng hiện tại. Chúng ta tiếp tục với bước 3 để chuyển MySQL sang MariaDB trên DirectAdmin.
NOTE: Không thể bỏ qua rủi ro và an toàn dữ liệu vẫn là trên hết, do đó trước thi thực hiện upgrade lên MariaDB bạn cần backup lại toàn bộ cơ dữ liệu của mình lại.
Bước 3: Chuyển MySQL sang MariaDB trên DirectAdminin với CustomBuild 2.0
Đầu tiên chúng ta cần xem phiên bản CustomBuild đang sử dụng có phải là 2.0 hay không. Để kiểm tra phiên bản CustomBuild đang sử dụng mời bạn xem qua bài hướng dẫn ngắn sau:
- Kiểm tra phiên bản CustomBuild đang sử dụng (check custombuild version)
Trong trường hợp phiên bản CustomBuild của bạn thấp hơn 2.0 thì bạn cần nâng cấp CustomBuild 1.x lên 2.0, bạn có thể xem qua bài hướng dẫn sau:
- Nâng cấp phiên bản CustomBuild từ 1.x lên 2.0
Sau khi đã có CustomBuild 2.0 chúng ta tiếp tục sử dụng các lệnh sau để nâng cấp Mysql trên DirectAdmin:
cd /usr/local/directadmin/custombuild ./build set mariadb 10.5 ./build set mysql_inst mariadb ./build set mysql_backup yes ./build update ./build mariadb
Giải thích các lệnh trên:
- Lệnh 1: Di chuyển để thư mục custombuild.
- Lệnh 2: Điều chỉnh cấu hình phiên bản MariaDB lên bản 10.5 mới nhất hiện tại, các bạn có thể theo dõi các phiên bản mới hơn tại trang chủ của MariaDB.
- Lệnh 3: Sử dụng hệ quản trị cơ sở dữ liệu là MariaDB (Vì chúng ta có 2 tùy chọn 1 là Mysql, 2 là MariaDB).
- Lệnh 4: Điều chỉnh cấu hình bật tính năng sao lưu database trước khi chạy lệnh cài đặt.
- Lệnh 5: Cập nhật lại custombuild script.
- Lệnh 6: Bắt đầu quá trình chuyển từ Mysql sang MariaDB.
Thông tin thêm với các bạn là vì hiện tại thời điểm mình viết bài này chỉ mới có MariaDB phiên bản 10.5, nên khi bạn đổi thành 10.6 sẽ không hợp lệ, tuy nhiên trong tương lai có thể sẽ hợp lệ sau khi MariaDB ra phiên bản này. Dưới đây là hình ảnh khi mình thử điều chỉnh phiên bản sang 10.6.
Quá trình cài đặt diễn ra nhanh hay chậm sẽ tùy thuộc vào sức mạnh VPS/Server của bạn cũng như đường truyền thời điểm đó, vì trong quá trình này cần phải tải một số tệp tin cài đặt có dung lượng khá nặng. Quá trình cài đặt trên VPS 4 CPU Cores của mình là khoản 4 phút.
Và còn một lưu ý nhỏ nữa cũng ảnh hưởng đến thời gian cài đặt của bạn đó là trong quá trình cài đặt là hệ thống sẽ tự động dump tất cả các database đang có ra một thư mục, để tránh trường hợp mất hoặc lỗi dữ liệu. Nếu VPS/Server của bạn có rất nhiều database thì thời gian cài đặt sẽ kéo dài ra.
Để kiểm tra thư mục chưa database được dump ra nằm ở đâu chúng ta sử dụng 2 lệnh sau:
cd /usr/local/directadmin/custombuild cat options.conf | grep mysql_backup_dir
Ở đây của mình sẽ là thư mục /usr/local/directadmin/custombuild/mysql_backups
.
Dưới đây là hình ảnh sau khi cài đặt xong.
Tuy MariaDB khác với MySQL nhưng khi sử dụng chúng ta cũng dùng chung lệnh mysqld mà thôi. Tương tự lệnh kiểm tra phiên bản MySQL chúng ta cũng sử dụng lệnh mysqld -V
để xem đã nhận MariaDB phiên bản mới nhất chưa.
Như vậy là VPS của mình đã được cài đặt phiên bản MariaDB mới nhất là 10.5.4.
Tổng kết
Thông qua bài này các bạn đã nắm được cách chuyển Mysql sang MariaDB trên DirectAdmin nhanh gọn cũng như thư mục chứa các database đã được dump(xuất) ra trong quá trình cài đặt bản MariaDB mới. Hy vọng bài viết này sẽ giúp ích được nhiều cho các bạn.
Chúc các bạn thực hiện thành công.