Cài đặt MySQL hoặc MariaDB trên Rocky Linux là một kỹ năng quan trọng đối với bất kỳ ai làm việc với máy chủ và cơ sở dữ liệu. Bài viết này sẽ hướng dẫn bạn từng bước cài đặt và cấu hình cả hai hệ quản trị cơ sở dữ liệu (HQTCSDL) phổ biến này trên Rocky Linux, giúp bạn lựa chọn giải pháp phù hợp nhất cho nhu cầu của mình. Chúng ta sẽ đi sâu vào từng chi tiết, từ chuẩn bị môi trường đến cấu hình bảo mật cơ bản, đảm bảo bạn có một hệ thống hoạt động ổn định và an toàn.
Chọn Giữa MySQL và MariaDB: Đâu Là Lựa Chọn Tốt Nhất Cho Bạn?
Trước khi bắt đầu cài đặt, bạn cần quyết định xem MySQL hay MariaDB phù hợp hơn với dự án của mình. Cả hai đều là những HQTCSDL mã nguồn mở mạnh mẽ, nhưng có một số khác biệt quan trọng cần xem xét:
- MySQL: Là một trong những HQTCSDL phổ biến nhất thế giới, được Oracle Corporation phát triển. MySQL nổi tiếng với sự ổn định, hiệu suất cao và cộng đồng hỗ trợ lớn mạnh.
- MariaDB: Là một nhánh (fork) của MySQL, được phát triển bởi cộng đồng sau khi Oracle mua lại MySQL. MariaDB hướng đến việc duy trì mã nguồn mở hoàn toàn và cung cấp các tính năng cải tiến so với MySQL.
Vậy, nên chọn cái nào?
- Chọn MySQL nếu: Bạn cần một HQTCSDL đã được kiểm chứng qua thời gian với cộng đồng hỗ trợ rộng lớn và tài liệu phong phú. MySQL cũng là lựa chọn tốt nếu bạn cần tương thích với các ứng dụng hoặc công cụ chỉ hỗ trợ MySQL.
- Chọn MariaDB nếu: Bạn ưu tiên một HQTCSDL mã nguồn mở hoàn toàn, muốn tận dụng các tính năng cải tiến và hiệu suất tốt hơn, hoặc cần một giải pháp thay thế MySQL mà không lo ngại về vấn đề bản quyền.
“Trong nhiều trường hợp, MariaDB có thể là một lựa chọn tốt hơn MySQL vì nó thường có hiệu suất cao hơn và được phát triển bởi một cộng đồng mã nguồn mở năng động,” Tiến sĩ Lê Văn Nam, chuyên gia về cơ sở dữ liệu tại Đại học Bách Khoa Hà Nội, nhận xét.
Chuẩn Bị Môi Trường Rocky Linux
Trước khi cài đặt MySQL hoặc MariaDB, hãy đảm bảo hệ thống Rocky Linux của bạn đã được cập nhật và sẵn sàng.
-
Cập nhật hệ thống: Mở terminal và chạy lệnh sau để cập nhật danh sách các gói phần mềm và nâng cấp các gói đã cài đặt:
sudo dnf update -y
-
Kiểm tra kết nối mạng: Đảm bảo máy chủ của bạn có kết nối internet ổn định để tải xuống các gói phần mềm cần thiết.
-
Tắt tường lửa (tùy chọn, nhưng không khuyến khích): Nếu bạn đang sử dụng tường lửa, bạn cần cho phép lưu lượng truy cập đến cổng MySQL (mặc định là 3306) hoặc MariaDB (mặc định cũng là 3306). Tuy nhiên, việc tắt tường lửa hoàn toàn không được khuyến khích vì lý do bảo mật. Thay vào đó, bạn nên cấu hình tường lửa để chỉ cho phép lưu lượng truy cập từ các địa chỉ IP đáng tin cậy.
sudo systemctl stop firewalld sudo systemctl disable firewalld
Hoặc tốt hơn hết là bạn nên mở port 3306 trên firewall:
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
Cài Đặt MySQL Trên Rocky Linux
Nếu bạn quyết định chọn MySQL, hãy làm theo các bước sau:
-
Thêm kho lưu trữ MySQL: Rocky Linux không bao gồm MySQL trong kho lưu trữ mặc định. Bạn cần thêm kho lưu trữ MySQL chính thức từ Oracle. Tải xuống và cài đặt gói RPM từ trang web của MySQL.
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm sudo dnf install mysql80-community-release-el8-1.noarch.rpm
-
Cài đặt MySQL Server: Sau khi thêm kho lưu trữ, bạn có thể cài đặt MySQL Server bằng lệnh sau:
sudo dnf install mysql-community-server -y
-
Khởi động và kích hoạt MySQL Server: Sau khi cài đặt, bạn cần khởi động MySQL Server và kích hoạt nó để tự động khởi động cùng hệ thống.
sudo systemctl start mysqld sudo systemctl enable mysqld
-
Kiểm tra trạng thái MySQL Server: Để đảm bảo MySQL Server đang chạy, sử dụng lệnh sau:
sudo systemctl status mysqld
-
Cấu hình bảo mật MySQL: MySQL đi kèm với một script giúp bạn cấu hình các tùy chọn bảo mật cơ bản. Chạy script này và làm theo hướng dẫn:
sudo mysql_secure_installation
Bạn sẽ được yêu cầu đặt mật khẩu cho người dùng
root
, xóa người dùng ẩn danh, cấm đăng nhập từ xa cho người dùngroot
, và xóa cơ sở dữ liệu thử nghiệm. Hãy trả lời các câu hỏi một cách cẩn thận để tăng cường bảo mật cho hệ thống của bạn. -
Đăng nhập vào MySQL: Sử dụng lệnh sau để đăng nhập vào MySQL với tư cách người dùng
root
:mysql -u root -p
Bạn sẽ được yêu cầu nhập mật khẩu mà bạn đã đặt trong bước trước.
Cài Đặt MariaDB Trên Rocky Linux
Nếu bạn quyết định chọn MariaDB, quy trình cài đặt sẽ đơn giản hơn vì MariaDB đã có sẵn trong kho lưu trữ mặc định của Rocky Linux.
-
Cài đặt MariaDB Server: Sử dụng lệnh sau để cài đặt MariaDB Server:
sudo dnf install mariadb-server mariadb -y
-
Khởi động và kích hoạt MariaDB Server: Tương tự như MySQL, bạn cần khởi động MariaDB Server và kích hoạt nó để tự động khởi động cùng hệ thống.
sudo systemctl start mariadb sudo systemctl enable mariadb
-
Kiểm tra trạng thái MariaDB Server: Để đảm bảo MariaDB Server đang chạy, sử dụng lệnh sau:
sudo systemctl status mariadb
-
Cấu hình bảo mật MariaDB: MariaDB cũng đi kèm với một script giúp bạn cấu hình các tùy chọn bảo mật cơ bản. Chạy script này và làm theo hướng dẫn:
sudo mysql_secure_installation
Script này tương tự như script của MySQL và cung cấp các tùy chọn bảo mật tương tự.
-
Đăng nhập vào MariaDB: Sử dụng lệnh sau để đăng nhập vào MariaDB với tư cách người dùng
root
:mysql -u root -p
Bạn sẽ được yêu cầu nhập mật khẩu mà bạn đã đặt trong bước trước.
“Việc cấu hình bảo mật ngay sau khi cài đặt là vô cùng quan trọng để bảo vệ dữ liệu của bạn khỏi các truy cập trái phép,” kỹ sư bảo mật Trần Thị Mai Anh, công tác tại một công ty công nghệ thông tin lớn ở TP.HCM, nhấn mạnh.
Các Bước Cấu Hình Cơ Bản Sau Khi Cài Đặt
Sau khi cài đặt và cấu hình bảo mật, bạn có thể thực hiện một số bước cấu hình cơ bản để tối ưu hóa hiệu suất và quản lý cơ sở dữ liệu của mình.
-
Thay đổi phương thức xác thực (nếu cần): Mặc định, MySQL 8.0 sử dụng phương thức xác thực
caching_sha2_password
, có thể gây ra vấn đề tương thích với một số ứng dụng cũ. Nếu bạn gặp vấn đề với việc kết nối đến MySQL từ các ứng dụng, bạn có thể thay đổi phương thức xác thực thànhmysql_native_password
.-
Đăng nhập vào MySQL với tư cách người dùng
root
. -
Chạy lệnh sau để thay đổi phương thức xác thực cho người dùng
root
:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
Thay thế
your_new_password
bằng mật khẩu bạn muốn đặt. -
Chạy lệnh sau để làm mới các đặc quyền:
FLUSH PRIVILEGES;
-
-
Tạo người dùng và cấp quyền: Để quản lý cơ sở dữ liệu một cách an toàn, bạn nên tạo người dùng riêng cho từng ứng dụng và cấp cho họ các quyền cần thiết.
-
Đăng nhập vào MySQL hoặc MariaDB với tư cách người dùng
root
. -
Chạy lệnh sau để tạo một người dùng mới:
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';
Thay thế
your_user
bằng tên người dùng bạn muốn tạo vàyour_password
bằng mật khẩu của người dùng đó. -
Chạy lệnh sau để cấp quyền cho người dùng đó trên một cơ sở dữ liệu cụ thể:
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';
Thay thế
your_database
bằng tên cơ sở dữ liệu bạn muốn cấp quyền. Bạn có thể thayALL PRIVILEGES
bằng các quyền cụ thể hơn nếu cần. -
Chạy lệnh sau để làm mới các đặc quyền:
FLUSH PRIVILEGES;
-
-
Cấu hình tệp cấu hình: Cả MySQL và MariaDB đều sử dụng tệp cấu hình để điều chỉnh các thiết lập của server. Tệp cấu hình của MySQL thường nằm ở
/etc/my.cnf
hoặc/etc/mysql/my.cnf
, còn tệp cấu hình của MariaDB thường nằm ở/etc/my.cnf.d/server.cnf
. Bạn có thể chỉnh sửa tệp này để thay đổi các thông số như kích thước bộ đệm, số lượng kết nối tối đa, và nhiều thiết lập khác. Tuy nhiên, bạn cần cẩn thận khi chỉnh sửa tệp cấu hình vì các thiết lập sai có thể ảnh hưởng đến hiệu suất hoặc gây ra sự cố.
Việc kiểm tra log hệ thống rocky linux sẽ giúp bạn tìm ra các lỗi cấu hình nếu có.
Quản Lý Cơ Sở Dữ Liệu Với Dòng Lệnh
MySQL và MariaDB cung cấp một giao diện dòng lệnh mạnh mẽ để quản lý cơ sở dữ liệu. Bạn có thể sử dụng các lệnh SQL để tạo, sửa đổi, và xóa cơ sở dữ liệu, bảng, và dữ liệu. Dưới đây là một số lệnh cơ bản:
-
Tạo cơ sở dữ liệu:
CREATE DATABASE your_database;
-
Chọn cơ sở dữ liệu:
USE your_database;
-
Tạo bảng:
CREATE TABLE your_table ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), age INT );
-
Chèn dữ liệu:
INSERT INTO your_table (name, age) VALUES ('John Doe', 30);
-
Truy vấn dữ liệu:
SELECT * FROM your_table;
-
Cập nhật dữ liệu:
UPDATE your_table SET age = 31 WHERE id = 1;
-
Xóa dữ liệu:
DELETE FROM your_table WHERE id = 1;
-
Xóa bảng:
DROP TABLE your_table;
-
Xóa cơ sở dữ liệu:
DROP DATABASE your_database;
Sử Dụng phpMyAdmin Để Quản Lý Cơ Sở Dữ Liệu
Nếu bạn thích giao diện đồ họa hơn, bạn có thể cài đặt phpMyAdmin, một công cụ quản lý cơ sở dữ liệu web phổ biến.
-
Cài đặt phpMyAdmin: Sử dụng lệnh sau để cài đặt phpMyAdmin:
sudo dnf install phpMyAdmin -y
-
Cấu hình phpMyAdmin: Sau khi cài đặt, bạn cần cấu hình phpMyAdmin để kết nối đến MySQL hoặc MariaDB server của bạn.
Bạn có thể cài directadmin trên rocky linux để có một giao diện quản lý web hosting dễ dàng hơn.-
Tạo một liên kết tượng trưng từ tệp cấu hình phpMyAdmin đến thư mục cấu hình của Apache:
sudo ln -s /etc/phpMyAdmin/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf
-
Chỉnh sửa tệp cấu hình Apache để cho phép truy cập đến phpMyAdmin từ xa (nếu cần). Mở tệp
/etc/httpd/conf.d/phpMyAdmin.conf
và thêm dòng sau vào bên trong khối<Directory /usr/share/phpMyAdmin/>
:Require all granted
Lưu ý: Việc cho phép truy cập phpMyAdmin từ xa có thể gây ra rủi ro bảo mật. Hãy cân nhắc kỹ trước khi thực hiện và chỉ cho phép truy cập từ các địa chỉ IP đáng tin cậy.
-
Khởi động lại Apache:
sudo systemctl restart httpd
-
-
Truy cập phpMyAdmin: Mở trình duyệt web và truy cập
http://your_server_ip/phpMyAdmin
. Bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu để đăng nhập. Sử dụng tên người dùng và mật khẩu của người dùng MySQL hoặc MariaDB mà bạn đã tạo.
Sao Lưu và Phục Hồi Cơ Sở Dữ Liệu
Sao lưu và phục hồi cơ sở dữ liệu là một phần quan trọng của việc quản lý cơ sở dữ liệu. Dưới đây là một số cách để sao lưu và phục hồi cơ sở dữ liệu MySQL hoặc MariaDB:
-
Sử dụng
mysqldump
:mysqldump
là một công cụ dòng lệnh cho phép bạn sao lưu cơ sở dữ liệu thành một tệp SQL.-
Để sao lưu một cơ sở dữ liệu, sử dụng lệnh sau:
mysqldump -u your_user -p your_database > your_backup_file.sql
Thay thế
your_user
bằng tên người dùng có quyền truy cập vào cơ sở dữ liệu,your_database
bằng tên cơ sở dữ liệu bạn muốn sao lưu, vàyour_backup_file.sql
bằng tên tệp bạn muốn lưu bản sao lưu. -
Để phục hồi một cơ sở dữ liệu từ tệp sao lưu, sử dụng lệnh sau:
mysql -u your_user -p your_database < your_backup_file.sql
Thay thế các tham số tương ứng.
-
-
Sử dụng phpMyAdmin: phpMyAdmin cũng cung cấp chức năng sao lưu và phục hồi cơ sở dữ liệu.
- Để sao lưu, chọn cơ sở dữ liệu bạn muốn sao lưu, chọn tab “Export”, và làm theo hướng dẫn.
- Để phục hồi, chọn cơ sở dữ liệu bạn muốn phục hồi, chọn tab “Import”, và tải lên tệp sao lưu.
Giải Quyết Các Vấn Đề Thường Gặp
Trong quá trình cài đặt và sử dụng MySQL hoặc MariaDB, bạn có thể gặp phải một số vấn đề. Dưới đây là một số vấn đề thường gặp và cách giải quyết:
- Không thể kết nối đến server:
- Kiểm tra xem server đã được khởi động chưa.
- Kiểm tra xem tường lửa có chặn kết nối đến cổng 3306 không.
- Kiểm tra xem bạn có sử dụng đúng tên người dùng và mật khẩu không.
- Kiểm tra xem người dùng có quyền truy cập từ địa chỉ IP của bạn không.
- Lỗi “Access denied”:
- Kiểm tra xem người dùng có quyền truy cập vào cơ sở dữ liệu bạn đang cố gắng truy cập không.
- Kiểm tra xem bạn có sử dụng đúng tên người dùng và mật khẩu không.
- Lỗi “Table doesn’t exist”:
- Kiểm tra xem bảng bạn đang cố gắng truy cập có tồn tại trong cơ sở dữ liệu không.
- Kiểm tra xem bạn đã chọn đúng cơ sở dữ liệu chưa.
- Hiệu suất chậm:
- Kiểm tra xem bạn có đủ tài nguyên hệ thống (CPU, RAM, ổ cứng) không.
- Tối ưu hóa các truy vấn SQL của bạn.
- Điều chỉnh các thông số cấu hình của MySQL hoặc MariaDB.
Tối Ưu Hóa Hiệu Suất MySQL hoặc MariaDB
Để đảm bảo MySQL hoặc MariaDB hoạt động với hiệu suất tối ưu, bạn có thể thực hiện một số biện pháp sau:
- Sử dụng bộ nhớ đệm truy vấn (query cache): Bộ nhớ đệm truy vấn lưu trữ kết quả của các truy vấn đã thực hiện, giúp giảm thời gian phản hồi cho các truy vấn tương tự. Tuy nhiên, bộ nhớ đệm truy vấn có thể gây ra overhead nếu bạn có nhiều truy vấn khác nhau hoặc dữ liệu thay đổi thường xuyên.
- Tối ưu hóa các truy vấn SQL: Sử dụng
EXPLAIN
để phân tích các truy vấn của bạn và tìm ra các điểm cần tối ưu hóa. Sử dụng chỉ mục (index) để tăng tốc độ truy vấn. Tránh sử dụngSELECT *
và chỉ chọn các cột cần thiết. - Điều chỉnh các thông số cấu hình: Điều chỉnh các thông số như
innodb_buffer_pool_size
,key_buffer_size
, vàquery_cache_size
để phù hợp với khối lượng công việc của bạn. - Sử dụng ổ cứng SSD: Ổ cứng SSD có tốc độ đọc/ghi nhanh hơn nhiều so với ổ cứng HDD, giúp cải thiện hiệu suất tổng thể của hệ thống.
Nếu bạn đang tìm hiểu xem rocky linux có phù hợp cho devops không, việc tối ưu hiệu năng database là một yếu tố rất quan trọng. - Giám sát hiệu suất: Sử dụng các công cụ giám sát như
MySQL Enterprise Monitor
hoặcPercona Monitoring and Management
để theo dõi hiệu suất của MySQL hoặc MariaDB và xác định các vấn đề tiềm ẩn.
Bạn có thể tham khảo rocky linux nên dùng phiên bản nào để đảm bảo bạn đang sử dụng phiên bản Rocky Linux ổn định và được hỗ trợ tốt nhất. - Phân vùng bảng (partitioning): Nếu bạn có các bảng lớn, bạn có thể phân vùng chúng thành các phần nhỏ hơn để tăng tốc độ truy vấn và quản lý dữ liệu dễ dàng hơn.
- Sử dụng cơ chế sao chép (replication): Thiết lập cơ chế sao chép để sao lưu dữ liệu sang một hoặc nhiều máy chủ khác. Điều này giúp tăng tính sẵn sàng và khả năng chịu lỗi của hệ thống. Bạn có thể sử dụng cơ chế sao chép để tạo ra các máy chủ đọc (read replica) để giảm tải cho máy chủ chính.
Kết Luận
Việc cài đặt và cấu hình MySQL hoặc MariaDB trên Rocky Linux có thể là một nhiệm vụ phức tạp, nhưng với hướng dẫn chi tiết này, bạn sẽ có thể hoàn thành nó một cách dễ dàng. Hãy nhớ chọn HQTCSDL phù hợp với nhu cầu của bạn, tuân thủ các bước cấu hình bảo mật, và thực hiện các biện pháp tối ưu hóa hiệu suất để đảm bảo hệ thống của bạn hoạt động ổn định và an toàn. Việc thường xuyên sao lưu dữ liệu cũng là một thói quen tốt để phòng tránh các sự cố bất ngờ. Hi vọng với hướng dẫn này, bạn đã nắm vững cách cài MySQL hoặc MariaDB trên Rocky Linux một cách hiệu quả. Bạn cũng có thể tìm hiểu thêm về cách nâng cấp centos 8 lên rocky linux nếu bạn đang sử dụng CentOS 8.
Câu Hỏi Thường Gặp (FAQ)
-
Sự khác biệt chính giữa MySQL và MariaDB là gì?
MySQL thuộc sở hữu của Oracle, trong khi MariaDB là một nhánh mã nguồn mở của MySQL do cộng đồng phát triển. MariaDB thường có các tính năng mới và cải tiến hiệu suất nhanh hơn.
-
Làm thế nào để kiểm tra xem MySQL hoặc MariaDB đã được cài đặt chưa?
Sử dụng lệnh
mysql --version
hoặcmariadb --version
trong terminal. Nếu hệ thống trả về thông tin phiên bản, tức là MySQL hoặc MariaDB đã được cài đặt. -
Làm thế nào để khởi động, dừng, hoặc khởi động lại MySQL hoặc MariaDB?
Sử dụng các lệnh
sudo systemctl start mysqld
,sudo systemctl stop mysqld
, vàsudo systemctl restart mysqld
cho MySQL, hoặc thaymysqld
bằngmariadb
cho MariaDB. -
Làm thế nào để thay đổi mật khẩu root cho MySQL hoặc MariaDB?
Đăng nhập vào MySQL hoặc MariaDB với tư cách người dùng
root
và sử dụng lệnhALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
. Sau đó, chạyFLUSH PRIVILEGES;
. -
Làm thế nào để cho phép kết nối từ xa đến MySQL hoặc MariaDB?
Bạn cần chỉnh sửa tệp cấu hình của MySQL hoặc MariaDB để cho phép kết nối từ xa, và mở cổng 3306 trên tường lửa. Tuy nhiên, hãy cẩn thận vì việc này có thể gây ra rủi ro bảo mật. Chỉ cho phép kết nối từ các địa chỉ IP đáng tin cậy.
-
Làm thế nào để sao lưu một cơ sở dữ liệu MySQL hoặc MariaDB?
Sử dụng lệnh
mysqldump -u your_user -p your_database > your_backup_file.sql
. -
Làm thế nào để phục hồi một cơ sở dữ liệu MySQL hoặc MariaDB từ tệp sao lưu?
Sử dụng lệnh
mysql -u your_user -p your_database < your_backup_file.sql
.