Chào mừng bạn đến với hướng dẫn chi tiết của AZWEB! Việc cài đặt và quản lý cơ sở dữ liệu là một kỹ năng thiết yếu đối với bất kỳ nhà phát triển hay quản trị viên hệ thống nào. MySQL, với vị thế là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới, đóng vai trò trái tim của hàng triệu ứng dụng web. Tuy nhiên, quá trình cài đặt nó trên một máy chủ, đặc biệt là Ubuntu 20.04, đôi khi có thể gây bối rối cho người mới bắt đầu. Nhiều người dùng gặp khó khăn từ việc cập nhật hệ điều hành Ubuntu, chạy đúng lệnh cho đến cấu hình bảo mật ban đầu. Thấu hiểu điều đó, bài viết này được tạo ra để trở thành người bạn đồng hành đáng tin cậy của bạn. Chúng tôi sẽ hướng dẫn bạn qua từng bước một cách đơn giản và an toàn nhất, từ chuẩn bị hệ thống, cài đặt, bảo mật cho đến các thao tác quản lý cơ bản và xử lý lỗi thường gặp.
Yêu cầu hệ thống trước khi cài đặt MySQL trên Ubuntu 20.04
Trước khi bắt đầu hành trình cài đặt MySQL, việc đảm bảo hệ thống của bạn đáp ứng đầy đủ các yêu cầu cơ bản là vô cùng quan trọng. Bước chuẩn bị này giúp quá trình cài đặt diễn ra suôn sẻ, tránh được những lỗi không đáng có và tạo một nền tảng vững chắc cho cơ sở dữ liệu của bạn sau này. Hãy cùng AZWEB kiểm tra qua từng yếu tố cần thiết.
Kiểm tra phiên bản Ubuntu
Đầu tiên, bạn cần chắc chắn rằng mình đang sử dụng đúng phiên bản Ubuntu 20.04 (Focal Fossa). Hướng dẫn này được tối ưu hóa cho phiên bản này, và việc sử dụng một phiên bản khác có thể dẫn đến sự khác biệt trong các câu lệnh hoặc gói phần mềm. Để kiểm tra, hãy mở Terminal và chạy lệnh sau:
lsb_release -a
Lệnh này sẽ hiển thị thông tin chi tiết về phiên bản Ubuntu bạn đang dùng. Hãy đảm bảo rằng dòng Release hoặc Description cho thấy bạn đang ở trên phiên bản 20.04.

Đảm bảo quyền truy cập sudo/root
Việc cài đặt phần mềm ở cấp hệ thống như MySQL đòi hỏi quyền hạn quản trị cao nhất. Bạn cần có quyền truy cập vào người dùng root hoặc một tài khoản người dùng có quyền sudo (Super User Do). Hầu hết các lệnh trong hướng dẫn này sẽ bắt đầu bằng sudo, cho phép bạn thực thi chúng với đặc quyền của quản trị viên. Nếu bạn không có quyền này, bạn sẽ không thể cài đặt hay cấu hình MySQL. Việc sử dụng thành thạo Windows PowerShell hoặc các công cụ dòng lệnh trên Linux sẽ giúp bạn quản lý dễ dàng hơn.
Kiểm tra kết nối Internet và dung lượng ổ cứng
Một kết nối Internet ổn định là điều bắt buộc. Quá trình cài đặt sẽ tải về các gói phần mềm MySQL và những thành phần phụ thuộc từ các kho lưu trữ chính thức của Ubuntu. Kết nối chập chờn có thể làm gián đoạn việc tải về, gây ra lỗi và khiến quá trình cài đặt thất bại.
Bên cạnh đó, hãy đảm bảo rằng máy chủ của bạn có đủ dung lượng ổ cứng trống. Mặc dù bản thân MySQL không chiếm quá nhiều dung lượng ban đầu, nhưng bạn cần không gian để lưu trữ dữ liệu, các file log và các bản sao lưu sau này. Việc thiếu dung lượng có thể làm hệ thống hoạt động không ổn định và gây lỗi cho MySQL. Việc nắm rõ và áp dụng các phương pháp backup là gì sẽ giúp bảo vệ dữ liệu của bạn hiệu quả.
Cập nhật hệ thống Ubuntu 20.04 trước khi cài đặt
Một trong những nguyên tắc vàng khi quản trị hệ thống Linux là luôn giữ cho hệ thống được cập nhật. Trước khi cài đặt bất kỳ phần mềm mới nào, đặc biệt là một thành phần quan trọng như MySQL, việc cập nhật danh sách gói và nâng cấp các phần mềm hiện có là bước không thể bỏ qua. Điều này đảm bảo tính tương thích, bảo mật và ổn định cho toàn bộ hệ thống của bạn.
Lệnh cập nhật danh sách gói phần mềm
Đầu tiên, bạn cần đồng bộ hóa danh sách các gói phần mềm trên máy chủ của mình với các kho lưu trữ (repositories) của Ubuntu. Thao tác này giúp hệ thống “biết” được các phiên bản phần mềm mới nhất hiện có. Hãy mở Terminal và thực thi lệnh sau:
sudo apt update
Lệnh này sẽ quét qua tất cả các kho lưu trữ đã được cấu hình và tải về danh sách các gói mới nhất. Bạn sẽ thấy một loạt các dòng chữ chạy trên màn hình, cho biết tiến trình cập nhật từ các nguồn khác nhau.

Lệnh nâng cấp các gói hiện có
Sau khi đã làm mới danh sách gói, bước tiếp theo là nâng cấp tất cả các phần mềm hiện có trên hệ thống của bạn lên phiên bản mới nhất. Việc này giúp vá các lỗ hổng bảo mật đã biết và khắc phục các lỗi từ phiên bản cũ, tạo ra một môi trường ổn định nhất cho MySQL hoạt động. Sử dụng lệnh dưới đây:
sudo apt upgrade
Hệ thống sẽ liệt kê tất cả các gói sẽ được nâng cấp và hỏi bạn xác nhận. Hãy nhấn Y (Yes) và Enter để tiếp tục. Quá trình này có thể mất vài phút tùy thuộc vào số lượng gói cần nâng cấp và tốc độ mạng của bạn. Hoàn thành bước này đồng nghĩa với việc máy chủ của bạn đã sẵn sàng để chào đón MySQL.
Hướng dẫn từng bước cài đặt MySQL trên Ubuntu 20.04
Khi hệ thống đã được chuẩn bị và cập nhật, chúng ta sẽ bước vào phần chính: cài đặt MySQL Server. Với trình quản lý gói APT của Ubuntu, quá trình này trở nên cực kỳ đơn giản và nhanh chóng. Hãy cùng thực hiện từng bước một cách cẩn thận.
Cài đặt MySQL bằng APT
APT (Advanced Package Tool) là công cụ quản lý phần mềm mặc định trên Ubuntu. Nó giúp tự động hóa việc tải về, cài đặt và quản lý các gói phần mềm từ kho lưu trữ. Để cài đặt MySQL, bạn chỉ cần một câu lệnh duy nhất:
sudo apt install mysql-server
Khi bạn chạy lệnh này, APT sẽ thực hiện các công việc sau:
- Xác nhận: Hệ thống sẽ tính toán dung lượng cần thiết và hiển thị danh sách các gói phụ thuộc sẽ được cài đặt cùng với
mysql-server. Bạn chỉ cần nhấnYvàEnterđể xác nhận và bắt đầu quá trình. - Tải xuống: APT sẽ tải xuống tất cả các tệp cần thiết từ kho lưu trữ của Ubuntu.
- Cài đặt và cấu hình: Các gói sẽ được giải nén và cài đặt. Trong quá trình này, dịch vụ MySQL sẽ được tự động khởi động lần đầu tiên và được cấu hình để chạy mỗi khi hệ thống khởi động.
Quá trình này thường chỉ mất vài phút. Sau khi hoàn tất, MySQL Server đã được cài đặt và đang chạy trên hệ thống của bạn.

Kiểm tra trạng thái dịch vụ MySQL
Để chắc chắn rằng MySQL đã được cài đặt thành công và đang hoạt động, bạn nên kiểm tra trạng thái của dịch vụ. Sử dụng lệnh systemctl, công cụ quản lý dịch vụ tiêu chuẩn trên các phiên bản Ubuntu hiện đại:
sudo systemctl status mysql
Nếu mọi thứ diễn ra đúng như mong đợi, bạn sẽ thấy một thông báo trạng thái với dòng chữ active (running) màu xanh lá. Điều này xác nhận rằng máy chủ MySQL của bạn đang hoạt động và sẵn sàng nhận kết nối. Nếu bạn thấy trạng thái inactive (dead) hoặc failed, điều đó có nghĩa là đã có lỗi xảy ra và bạn cần kiểm tra lại các bước trước đó hoặc xem log lỗi để tìm nguyên nhân. Bạn có thể sử dụng công cụ SQL Server Management Studio hoặc tương đương cho việc quản lý MySQL.
Cấu hình bảo mật cho MySQL
Cài đặt thành công chỉ là bước khởi đầu. Một máy chủ MySQL với cấu hình mặc định tiềm ẩn nhiều rủi ro bảo mật. May mắn thay, MySQL cung cấp sẵn một kịch bản (script) giúp bạn tự động hóa việc thắt chặt an ninh cho cơ sở dữ liệu của mình. Đây là một bước cực kỳ quan trọng và không bao giờ được bỏ qua.
Khởi chạy script bảo mật MySQL
Để bắt đầu quá trình bảo mật, hãy chạy lệnh sau trong Terminal. Lệnh này sẽ thực thi script mysql_secure_installation:
sudo mysql_secure_installation
Sau khi chạy lệnh, bạn sẽ được dẫn qua một loạt các câu hỏi để thiết lập các quy tắc bảo mật cơ bản. Hãy cùng đi qua từng tùy chọn quan trọng.

Tạo mật khẩu root an toàn và các cài đặt nâng cao
Script bảo mật sẽ hỏi bạn một loạt các câu hỏi. Dưới đây là giải thích và khuyến nghị cho từng bước:
- VALIDATE PASSWORD COMPONENT (Thành phần xác thực mật khẩu): Tùy chọn đầu tiên hỏi bạn có muốn kích hoạt Thành phần xác thực mật khẩu không. Nếu bạn chọn
Y(Yes), MySQL sẽ yêu cầu tất cả mật khẩu phải tuân thủ các quy tắc phức tạp (độ dài, chữ hoa, chữ thường, số, ký tự đặc biệt). Đây là một lựa chọn rất tốt để tăng cường bảo mật. Bạn nên chọnYvà sau đó chọn mức độ phức tạp của mật khẩu (0 – Low, 1 – Medium, 2 – Strong). Mức Medium (1) thường là lựa chọn cân bằng. - Set root password (Đặt mật khẩu cho người dùng root): Tiếp theo, bạn sẽ được yêu cầu đặt mật khẩu mới cho người dùng
rootcủa MySQL. Đây là tài khoản quản trị cao nhất, vì vậy hãy chọn một mật khẩu thật mạnh và duy nhất. - Remove anonymous users (Xóa người dùng ẩn danh): MySQL mặc định tạo ra một người dùng ẩn danh cho phép bất kỳ ai cũng có thể đăng nhập mà không cần tài khoản. Đây là một rủi ro bảo mật lớn. Hãy chọn
Yđể xóa người dùng này. - Disallow root login remotely (Không cho phép root đăng nhập từ xa): Cho phép tài khoản
rootkết nối từ xa làm tăng nguy cơ bị tấn công dò mật khẩu (brute-force). Tốt nhất là chỉ nên cho phéprootđăng nhập từlocalhost. Hãy chọnY. - Remove test database and access to it (Xóa cơ sở dữ liệu thử nghiệm): Cài đặt mặc định bao gồm một cơ sở dữ liệu tên là
testmà bất kỳ ai cũng có thể truy cập. Nó chỉ dùng cho mục đích thử nghiệm và nên được xóa trên môi trường production. ChọnY. - Reload privilege tables now (Tải lại bảng phân quyền): Cuối cùng, script sẽ hỏi bạn có muốn tải lại bảng phân quyền hay không. Việc này là cần thiết để áp dụng tất cả các thay đổi bảo mật bạn vừa thực hiện. Hãy chọn
Y.
Sau khi hoàn tất các bước trên, máy chủ MySQL của bạn đã được bảo vệ tốt hơn rất nhiều.
Các lệnh cơ bản quản lý MySQL trên Ubuntu
Sau khi cài đặt và bảo mật, bạn cần biết cách tương tác và quản lý dịch vụ MySQL. Việc khởi động, dừng, kiểm tra trạng thái hay truy cập vào dòng lệnh MySQL là những thao tác bạn sẽ thực hiện thường xuyên. Dưới đây là những lệnh cơ bản và cần thiết nhất.
Khởi động, dừng và khởi động lại dịch vụ MySQL
Ubuntu sử dụng systemctl để quản lý các dịch vụ (services). Bạn có thể dùng nó để điều khiển MySQL một cách dễ dàng.
- Để dừng dịch vụ MySQL:
sudo systemctl stop mysql - Để khởi động dịch vụ MySQL:
sudo systemctl start mysql - Để khởi động lại dịch vụ (thường dùng sau khi thay đổi cấu hình):
sudo systemctl restart mysql
Ngoài ra, bạn có thể muốn cấu hình để MySQL tự động khởi động cùng hệ thống hoặc không.
- Bật tự động khởi động:
sudo systemctl enable mysql - Tắt tự động khởi động:
sudo systemctl disable mysql

Truy cập MySQL shell và quản lý người dùng
MySQL shell là giao diện dòng lệnh cho phép bạn trực tiếp tương tác với cơ sở dữ liệu. Để đăng nhập với tư cách người dùng root (tài khoản quản trị bạn đã tạo mật khẩu ở bước bảo mật), sử dụng lệnh:
sudo mysql -u root -p
Hệ thống sẽ yêu cầu bạn nhập mật khẩu của người dùng root MySQL. Lưu ý rằng khi bạn gõ mật khẩu, sẽ không có ký tự nào hiện ra trên màn hình, đây là một tính năng bảo mật. Sau khi đăng nhập thành công, bạn sẽ thấy dấu nhắc lệnh chuyển thành mysql>.
Một trong những việc đầu tiên bạn nên làm là tạo một người dùng mới thay vì luôn sử dụng root. Điều này an toàn hơn cho các ứng dụng của bạn.
- Tạo người dùng mới:
CREATE USER 'ten_nguoi_dung'@'localhost' IDENTIFIED BY 'mat_khau_manh'; - Cấp quyền cho người dùng đó trên một cơ sở dữ liệu cụ thể:
GRANT ALL PRIVILEGES ON ten_database.* TO 'ten_nguoi_dung'@'localhost'; - Áp dụng các thay đổi về quyền:
FLUSH PRIVILEGES; - Thoát khỏi MySQL shell:
EXIT;

Khắc phục các lỗi phổ biến trong quá trình cài đặt MySQL
Mặc dù quá trình cài đặt MySQL trên Ubuntu 20.04 thường diễn ra suôn sẻ, đôi khi bạn vẫn có thể gặp phải một số lỗi phổ biến. Việc hiểu rõ nguyên nhân và cách khắc phục sẽ giúp bạn tiết kiệm thời gian và giảm bớt căng thẳng. Dưới đây là hai sự cố thường gặp nhất và cách xử lý chúng.
Lỗi “Unable to locate package mysql-server”
Đây là một trong những lỗi phổ biến nhất mà người dùng mới gặp phải. Khi bạn chạy lệnh sudo apt install mysql-server và nhận được thông báo này, nó có nghĩa là trình quản lý gói apt không thể tìm thấy gói mysql-server trong danh sách các gói phần mềm của nó.
Nguyên nhân:
Nguyên nhân chính gần như luôn là do bạn đã bỏ qua bước cập nhật danh sách gói. Máy chủ của bạn đang giữ một danh sách gói đã cũ và không chứa thông tin về mysql-server.
Cách xử lý:
Cách giải quyết rất đơn giản. Bạn chỉ cần chạy lại lệnh cập nhật danh sách gói:
sudo apt update
Sau khi lệnh này chạy xong, hãy thử lại lệnh cài đặt mysql-server. Lần này, apt sẽ tìm thấy gói và quá trình cài đặt sẽ tiếp tục như bình thường. Trong một số trường hợp hiếm hoi, lỗi này có thể do kho lưu trữ (repository) của bạn bị cấu hình sai, nhưng với một cài đặt Ubuntu tiêu chuẩn, việc chạy apt update gần như luôn giải quyết được vấn đề.

Lỗi dịch vụ MySQL không khởi động
Sau khi cài đặt, bạn có thể kiểm tra trạng thái bằng sudo systemctl status mysql và thấy dịch vụ bị lỗi (failed). Điều này có thể xảy ra vì nhiều lý do.
Cách xử lý:
Để chẩn đoán vấn đề, bạn cần kiểm tra các file log của hệ thống và của MySQL.
- Kiểm tra log hệ thống chung: Sử dụng
journalctlđể xem các thông báo lỗi liên quan đến dịch vụ MySQL.sudo journalctl -xe -u mysql
Lệnh này sẽ hiển thị các log chi tiết nhất về lỗi của dịch vụ, thường sẽ chỉ ra nguyên nhân cốt lõi. - Kiểm tra log lỗi của MySQL: MySQL cũng có file log riêng, thường nằm ở
/var/log/mysql/error.log.sudo tail -f /var/log/mysql/error.log
Lệnhtail -fsẽ hiển thị những dòng cuối cùng của file log và cập nhật liên tục, giúp bạn xem lỗi ngay khi nó xảy ra. - Kiểm tra file cấu hình: Một lỗi cú pháp nhỏ trong file cấu hình (
/etc/mysql/my.cnfhoặc các file trong/etc/mysql/mysql.conf.d/) cũng có thể ngăn MySQL khởi động. Nếu bạn vừa chỉnh sửa file này, hãy kiểm tra lại cẩn thận. - Vấn đề về quyền truy cập: Đảm bảo rằng người dùng
mysqlcó quyền đọc và ghi trên thư mục dữ liệu của MySQL (thường là/var/lib/mysql).
Bằng cách đi qua các bước kiểm tra này, bạn có thể xác định chính xác nguyên nhân và khắc phục sự cố một cách hiệu quả.

Best Practices
Để đảm bảo hệ thống MySQL của bạn hoạt động ổn định, an toàn và hiệu quả trong dài hạn, việc tuân thủ các nguyên tắc và thực hành tốt nhất là vô cùng cần thiết. Dưới đây là những khuyến nghị quan trọng từ AZWEB mà bạn nên ghi nhớ và áp dụng.
- Luôn cập nhật hệ thống trước khi cài đặt: Như đã nhấn mạnh, hãy luôn chạy
sudo apt updatevàsudo apt upgradetrước khi cài đặt bất kỳ phần mềm mới nào. Điều này giúp tránh các vấn đề về tương thích và đảm bảo bạn đang cài đặt trên một nền tảng ổn định và an toàn. - Sử dụng mật khẩu phức tạp cho tài khoản root: Tài khoản
rootcủa MySQL có toàn quyền trên tất cả các cơ sở dữ liệu. Hãy sử dụng một mật khẩu dài, phức tạp, kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt. Tuyệt đối không sử dụng mật khẩu yếu hoặc dễ đoán. - Không chạy ứng dụng bằng tài khoản root: Thay vì kết nối ứng dụng của bạn tới MySQL bằng tài khoản
root, hãy tạo một tài khoản người dùng riêng cho mỗi ứng dụng. Chỉ cấp cho tài khoản đó những quyền hạn thực sự cần thiết trên cơ sở dữ liệu mà nó cần truy cập. Nguyên tắc này được gọi là “nguyên tắc đặc quyền tối thiểu” và giúp hạn chế thiệt hại nếu thông tin đăng nhập của ứng dụng bị lộ. - Định kỳ kiểm tra trạng thái dịch vụ và sao lưu dữ liệu: Thường xuyên kiểm tra trạng thái dịch vụ MySQL để phát hiện sớm các vấn đề. Quan trọng hơn cả, hãy thiết lập một lịch trình sao lưu (backup là gì) cơ sở dữ liệu tự động và định kỳ. Dữ liệu là tài sản quý giá nhất, và việc có một bản sao lưu tin cậy sẽ cứu bạn trong trường hợp xảy ra sự cố.
- Tránh chỉnh sửa file cấu hình MySQL mà không sao lưu trước: Trước khi thực hiện bất kỳ thay đổi nào đối với file cấu hình (
my.cnf), hãy tạo một bản sao lưu của nó. Một lỗi cú pháp nhỏ trong file này cũng có thể khiến dịch vụ MySQL không thể khởi động. Việc có bản sao lưu giúp bạn dễ dàng khôi phục lại trạng thái hoạt động trước đó.
Kết luận
Qua bài viết này, chúng ta đã cùng nhau đi qua một hành trình chi tiết, từ việc chuẩn bị hệ thống cho đến cài đặt, bảo mật và quản lý cơ bản máy chủ MySQL trên Ubuntu 20.04. Bằng cách tuân thủ từng bước một cách cẩn thận—cập nhật hệ thống, sử dụng apt để cài đặt, chạy script bảo mật mysql_secure_installation, và làm quen với các lệnh quản lý dịch vụ—bạn đã xây dựng được một nền tảng cơ sở dữ liệu vững chắc và an toàn. Việc nắm vững các bước này không chỉ giúp bạn thiết lập thành công MySQL mà còn trang bị cho bạn kiến thức nền tảng để quản trị hệ thống một cách tự tin.
AZWEB khuyến khích bạn hãy tự mình thực hành theo hướng dẫn để củng cố kỹ năng. Đừng dừng lại ở đây. Thế giới của MySQL còn rất rộng lớn và đầy tiềm năng. Bạn có thể bắt đầu tìm hiểu sâu hơn về các chủ đề nâng cao như cách thiết lập sao lưu và phục hồi dữ liệu tự động, các kỹ thuật tối ưu hóa hiệu suất truy vấn, hoặc cài đặt các công cụ quản lý giao diện đồ họa như phpMyAdmin để làm việc với cơ sở dữ liệu một cách trực quan hơn. Chúc bạn thành công trên con đường chinh phục và làm chủ MySQL.