Cài SQL Server 2025 trên Ubuntu 24.04 chạy cùng Plesk
Hướng dẫn Linux Server · cập nhật 16/09/2026
Cài SQL Server 2025 lên máy chủ Ubuntu 24.04 đang chạy Plesk mất khoảng 20 phút, chưa tính thời gian cài Plesk. Hai dịch vụ chạy song song trên cùng một máy nhưng độc lập nhau: Plesk lo website, còn SQL Server bạn quản lý riêng bằng dòng lệnh. Đọc bài này khoảng 11 phút.
Bài viết theo tài liệu cài đặt SQL Server trên Ubuntu của Microsoft Learn cập nhật tháng 6/2026, áp dụng cho SQL Server 2025 bản CU1 trở lên, vì Ubuntu 24.04 chỉ được hỗ trợ từ bản đó. Máy cần tối thiểu 2 GB RAM riêng cho SQL Server.
- Biết trước Plesk làm được gì và không làm được gì với SQL Server.
- Chuẩn bị máy và cài Plesk.
- Cài SQL Server 2025 từ kho của Microsoft.
- Chọn edition đúng giấy phép.
- Tạo database, tài khoản riêng và tắt tài khoản sa.
- Mở kết nối từ xa an toàn.
- Giới hạn bộ nhớ, sao lưu và đọc log.
Plesk trên Linux quản lý được SQL Server không
Không. Plesk bản Linux chỉ quản lý được MariaDB, MySQL và PostgreSQL. Tài liệu Plesk ghi rõ Microsoft SQL Server chỉ được hỗ trợ trên Plesk bản Windows. Cài SQL Server lên máy Plesk Linux vẫn chạy tốt, nhưng mục Database Servers trong Plesk sẽ không nhìn thấy nó, và bạn quản lý nó hoàn toàn bằng công cụ riêng.
| Thành phần | Cổng | Quản lý bằng |
|---|---|---|
| Giao diện Plesk | 8443 | Trình duyệt |
| MariaDB của Plesk | 3306 | Plesk, mục Database Servers |
| SQL Server 2025 | 1433 | sqlcmd, SQL Server Management Studio hoặc VS Code |
Hệ quả thực tế có ba điều, nên biết trước khi cài. Database SQL Server không tạo được từ giao diện Plesk. Bản sao lưu của Plesk không chứa dữ liệu SQL Server. Và SQL Server không chia sẻ tài khoản với Plesk, mỗi bên một bộ đăng nhập riêng.
Nếu website của bạn là ASP.NET và cần quản lý database ngay trong bảng điều khiển, Plesk bản Windows là lựa chọn hợp hơn.
Chuẩn bị máy Ubuntu 24.04 và cài Plesk
Máy phải được cập nhật và đặt đúng múi giờ trước khi cài bất cứ thứ gì, vì SQL Server ghi giờ hệ thống vào log và vào dữ liệu có kiểu ngày giờ. Đặt sai múi giờ từ đầu thì sau này sửa lại rất mệt. Toàn bộ các lệnh dưới đây chạy qua SSH bằng tài khoản có quyền sudo.
Chưa quen vào máy chủ bằng dòng lệnh thì xem cách kết nối VPS Linux bằng SSH lần đầu trước.
1. Cập nhật hệ thống và đặt múi giờ Việt Nam
sudo apt update && sudo apt upgrade -y
sudo timedatectl set-timezone Asia/Ho_Chi_Minh
timedatectl status
Dòng Time zone trong kết quả phải hiện Asia/Ho_Chi_Minh (+07, +0700).
2. Cài các gói cần cho bước sau
sudo apt install -y curl wget gnupg2 software-properties-common apt-transport-https
3. Tải bộ cài Plesk về rồi mới chạy
Trên Ubuntu 24.04, kiểu chạy bộ cài bằng một dòng lệnh nối ống sh <(curl ...) dưới quyền sudo hay báo lỗi sh: 0: cannot open /dev/fd/63. Tải tệp cài về trước rồi chạy thì không gặp lỗi này.
curl -o /tmp/plesk-installer https://autoinstall.plesk.com/plesk-installer
chmod +x /tmp/plesk-installer
sudo /tmp/plesk-installer
Chọn Plesk Obsidian trong menu. Quá trình cài mất 10–30 phút tuỳ tốc độ máy. Cài xong, mở https://IP-máy-chủ:8443 để đặt mật khẩu quản trị, cách dùng giao diện ở bài đăng nhập Plesk và làm quen giao diện.
Cài SQL Server 2025 từ kho chính thức của Microsoft
SQL Server 2025 đã có bản phát hành chính thức, nên cài từ kho mssql-server-2025 chứ không dùng kho preview. Nhiều hướng dẫn viết trong giai đoạn thử nghiệm vẫn dùng kho preview, cài theo sẽ ra bản thử nghiệm không được cập nhật bản vá bảo mật như bản chính thức.
1. Gỡ kho preview nếu máy từng cài thử
ls /etc/apt/sources.list.d/ | grep mssql
sudo rm -f /etc/apt/sources.list.d/mssql-server-preview.list
Microsoft yêu cầu gỡ kho preview trước khi cài bản chính thức. Máy chưa từng cài thì lệnh ls không in ra gì, bỏ qua bước này.
2. Thêm khoá và kho của Microsoft
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | sudo tee /etc/apt/sources.list.d/mssql-server-2025.list
3. Cài gói và chạy cấu hình ban đầu
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
Lệnh mssql-conf setup hỏi ba thứ: chọn edition, chấp nhận điều khoản giấy phép, và đặt mật khẩu cho tài khoản sa. Mật khẩu tối thiểu 8 ký tự, gồm ít nhất ba trong bốn loại: chữ hoa, chữ thường, chữ số, ký hiệu. Cách chọn edition nằm ở mục ngay sau, đọc trước khi trả lời câu hỏi đầu tiên.
4. Kiểm dịch vụ đã chạy chưa
systemctl status mssql-server --no-pager
Kết quả hiện Active: active (running) là cài thành công. Gói cài xong đã tự bật dịch vụ chạy cùng máy khi khởi động lại.
Chọn edition SQL Server 2025 nào cho đúng giấy phép
Chọn edition là quyết định về giấy phép, không chỉ về tính năng. Ba bản miễn phí là Express, Developer và Evaluation, nhưng chỉ Express được dùng cho website đang chạy thật. Hai bản Developer có đủ tính năng bản trả phí nhưng giấy phép cấm dùng cho môi trường production.
| Edition | Miễn phí | Dùng cho website thật | Giới hạn chính |
|---|---|---|---|
| Express | Có | Được | Tối đa 4 lõi, khoảng 1,4 GB bộ nhớ đệm, giới hạn dung lượng mỗi database |
| Standard Developer | Có | Không, chỉ phát triển và kiểm thử | Đủ tính năng bản Standard |
| Enterprise Developer | Có | Không, chỉ phát triển và kiểm thử | Đủ tính năng bản Enterprise |
| Evaluation | Có, 180 ngày | Không | Hết 180 ngày thì dịch vụ ngừng chạy |
| Standard, Enterprise | Không | Được | Phải mua giấy phép theo số lõi |
Về dung lượng tối đa mỗi database của bản Express, tài liệu SQL Server 2025 cho Linux của Microsoft đang ghi 10 GB, còn trang tổng hợp chung ghi 50 GB. Dữ liệu của bạn dự kiến vượt 10 GB thì kiểm lại trên trang Editions của Microsoft trước khi chọn Express.
Bản Web không còn trong SQL Server 2025. Lỡ chọn sai edition lúc cài thì đổi lại được bất cứ lúc nào:
sudo systemctl stop mssql-server
sudo /opt/mssql/bin/mssql-conf set-edition
sudo systemctl start mssql-server
Tạo database và tài khoản riêng thay cho sa
Tài khoản sa có toàn quyền trên máy chủ SQL và là tên đăng nhập đầu tiên mọi công cụ dò mật khẩu nhắm vào. Microsoft khuyên dùng sa đúng một lần để tạo tài khoản quản trị riêng, rồi tắt nó đi. Ứng dụng web thì dùng một tài khoản thứ ba, chỉ có quyền trên database của chính nó.
1. Cài công cụ dòng lệnh sqlcmd
curl -sSL -O https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
Lệnh cài hỏi chấp nhận điều khoản giấy phép hai lần, trả lời YES cả hai.
2. Đăng nhập bằng sa lần đầu
sqlcmd -S localhost -U sa -C
Không gõ mật khẩu ngay trong lệnh bằng tham số -P, vì mật khẩu sẽ nằm lại trong lịch sử dòng lệnh. Bỏ -P đi thì sqlcmd tự hỏi mật khẩu. Tham số -C cho phép tin chứng chỉ tự ký của máy chủ, cần có vì sqlcmd bản mới mặc định bắt buộc mã hoá kết nối.
3. Tạo tài khoản quản trị, database và tài khoản cho ứng dụng
CREATE LOGIN quantri WITH PASSWORD = '<mật-khẩu-quản-trị>';
ALTER SERVER ROLE sysadmin ADD MEMBER quantri;
GO
CREATE DATABASE AppDb;
GO
CREATE LOGIN app_user WITH PASSWORD = '<mật-khẩu-ứng-dụng>';
GO
USE AppDb;
CREATE USER app_user FOR LOGIN app_user;
ALTER ROLE db_owner ADD MEMBER app_user;
GO
Dòng
USE AppDbbắt buộc phải đứng trướcCREATE USER. Thiếu dòng này thì tài khoản được tạo trong database hệ thốngmasterchứ không phải trongAppDb, và ứng dụng đăng nhập được nhưng báo không có quyền mở database. Đây là lỗi hay gặp trong các hướng dẫn chép nhanh.
4. Đăng nhập lại bằng tài khoản quản trị rồi tắt sa
sqlcmd -S localhost -U quantri -C
ALTER LOGIN sa DISABLE;
GO
Chỉ tắt sa sau khi đã đăng nhập thành công bằng quantri. Làm ngược thứ tự mà tài khoản quản trị chưa dùng được là tự khoá mình ngoài máy chủ SQL.
Mở kết nối từ xa tới SQL Server mà không phơi cổng 1433
Ứng dụng chạy ngay trên máy chủ thì không cần mở cổng nào, kết nối qua localhost là đủ. Chỉ mở cổng 1433 khi bạn cần quản trị từ máy tính ở văn phòng, và chỉ mở cho đúng địa chỉ IP đó. Cổng 1433 mở cho mọi địa chỉ sẽ bị các công cụ dò mật khẩu quét tới trong vòng vài giờ.
Máy có Plesk thì mở cổng bằng tường lửa của Plesk, không bật thêm UFW. Tài liệu Plesk nêu rõ hai công cụ tường lửa cùng điều khiển iptables sẽ tranh nhau, và hậu quả thường là đóng mất các cổng Plesk cần để chạy, kể cả cổng 8443 của chính giao diện quản trị.
| Máy đang dùng | Mở cổng 1433 bằng |
|---|---|
| Có Plesk Firewall | Vào Tools & Settings, mục Security, chọn Firewall, thêm luật tuỳ chỉnh cho phép kết nối vào cổng 1433 TCP từ đúng IP của bạn |
| Đang dùng UFW | Chạy lệnh bên dưới, thay IP bằng địa chỉ của bạn |
sudo ufw allow from 203.0.113.10 to any port 1433 proto tcp
sudo ufw status numbered
Máy chưa từng bật UFW thì đừng bật nó chỉ để mở cổng này. Bật UFW lần đầu mà chưa mở cổng SSH là mất kết nối vào máy chủ ngay lập tức, xem kỹ cài tường lửa UFW cơ bản cho VPS Ubuntu trước khi làm.
Thông số kết nối từ SQL Server Management Studio
- Server name:
IP-máy-chủ,1433, lưu ý dấu phẩy chứ không phải dấu hai chấm. - Authentication: SQL Server Authentication.
- Login:
quantri, không dùngsavì đã tắt. - Trust server certificate: đánh dấu chọn.
Chuỗi kết nối cho ứng dụng .NET
Server=localhost,1433;Database=AppDb;User Id=app_user;Password=<mật-khẩu-ứng-dụng>;TrustServerCertificate=True;
Ứng dụng PHP muốn kết nối SQL Server cần thêm extension pdo_sqlsrv và trình điều khiển ODBC Driver 18 của Microsoft. PHP đi kèm Plesk bản Linux không có sẵn hai thứ này.
Giới hạn bộ nhớ, sao lưu và đọc log SQL Server
Mặc định SQL Server trên Linux được phép dùng tới 80% RAM của máy. Trên máy chỉ chạy SQL Server thì hợp lý, nhưng trên máy chạy chung Plesk, MariaDB và PHP thì SQL Server sẽ chiếm dần bộ nhớ, và website bắt đầu chậm hoặc lỗi 502 mà nhìn vào Plesk không thấy nguyên nhân.
1. Đặt trần bộ nhớ cho SQL Server
sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096
sudo systemctl restart mssql-server
Con số tính bằng MB. Máy 8 GB RAM chạy chung Plesk thì đặt khoảng 4096, chừa phần còn lại cho website. Bản Express tự giới hạn bộ nhớ đệm ở mức thấp nên ít khi cần bước này, nhưng đặt vẫn không thừa.
2. Sao lưu database bằng lệnh riêng
Bản sao lưu của Plesk không chứa dữ liệu SQL Server, kể cả khi bạn đặt lịch sao lưu toàn bộ máy. Phải sao lưu bằng lệnh của chính SQL Server:
BACKUP DATABASE AppDb
TO DISK = '/var/opt/mssql/data/AppDb.bak'
WITH INIT;
GO
Tệp .bak nằm cùng ổ với dữ liệu gốc, ổ hỏng là mất cả hai. Chép tệp ra một nơi khác sau mỗi lần sao lưu, và đặt lịch chạy tự động theo crontab trong Linux.
3. Đọc log khi dịch vụ không chạy
sudo tail -n 100 /var/opt/mssql/log/errorlog
Dịch vụ không khởi động được thì nguyên nhân gần như luôn nằm ở những dòng cuối của tệp này, trước khi phải đi tìm ở đâu khác.
Lỗi hay gặp khi cài SQL Server trên Ubuntu 24.04
Năm lỗi dưới đây chiếm phần lớn các ca cài không thành. Đối chiếu thông báo lỗi nguyên văn với cột đầu tiên, đa số có cách xử lý trong một hai lệnh mà không phải cài lại từ đầu.
| Thông báo hoặc dấu hiệu | Nguyên nhân | Cách xử lý |
|---|---|---|
cannot open /dev/fd/63 |
Chạy bộ cài Plesk bằng lệnh nối ống dưới sudo | Tải tệp cài về trước rồi chạy, như ở mục chuẩn bị |
Unable to locate package |
Chưa thêm kho, thêm nhầm kho của Ubuntu 22.04, hoặc quên apt-get update |
Kiểm tệp trong /etc/apt/sources.list.d/, phải có ubuntu/24.04 trong đường dẫn |
| Dịch vụ dừng ngay sau khi cài | Máy không đủ 2 GB RAM trống cho SQL Server | Đọc errorlog, nâng RAM hoặc tắt bớt dịch vụ khác |
certificate verify failed |
sqlcmd bản mới bắt buộc mã hoá, không tin chứng chỉ tự ký |
Thêm tham số -C vào lệnh sqlcmd |
| Kết nối từ xa bị treo | Cổng 1433 chưa mở, hoặc mở ở UFW trong khi Plesk Firewall đang chặn | Mở đúng ở công cụ tường lửa đang chạy, và chỉ cho IP của bạn |
Lỗi Login failed for user 'sa' xuất hiện sau khi đã làm theo mục tạo tài khoản là đúng như dự kiến, vì sa đã bị tắt. Đăng nhập bằng tài khoản quantri thay vào.