BizMaC bizmac.com

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.

  1. Biết trước Plesk làm được gì và không làm được gì với SQL Server.
  2. Chuẩn bị máy và cài Plesk.
  3. Cài SQL Server 2025 từ kho của Microsoft.
  4. Chọn edition đúng giấy phép.
  5. Tạo database, tài khoản riêng và tắt tài khoản sa.
  6. Mở kết nối từ xa an toàn.
  7. 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 AppDb bắt buộc phải đứng trước CREATE USER. Thiếu dòng này thì tài khoản được tạo trong database hệ thống master chứ không phải trong AppDb, 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ùng sa vì đã 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.

Hướng dẫn này có giúp được Anh/Chị không?

Bài khác trong Linux Server

Xem cả 23 bài
Cài tường lửa UFW cơ bản cho VPS Ubuntu Cách cài UFW trên Ubuntu, cho phép cổng SSH trước khi bật, mở cổng web 80 và 443, rồi kích hoạt tường lửa mà không mất kết nối cho người mới quản trị VPS. 5 phút đọc 136 lượt xem Cập nhật 29/08/2026 Đổi port SSH mặc định để bảo mật VPS Cách đổi cổng SSH từ 22 sang cổng khác trong file sshd_config, mở cổng mới trên tường lửa trước khi khởi động lại dịch vụ, và kiểm tra kết nối cho người mới. 5 phút đọc 90 lượt xem Cập nhật 28/08/2026 Cài Fail2Ban chống dò mật khẩu SSH Cách cài Fail2Ban trên Ubuntu và CentOS, tạo file cấu hình jail.local, đặt số lần sai và thời gian khoá IP, rồi kiểm tra danh sách IP đang bị chặn. 5 phút đọc 77 lượt xem Cập nhật 28/08/2026 Phân quyền file thư mục bằng chmod và chown Cách đọc dãy quyền rwx, dùng chmod đổi quyền theo số và chown đổi chủ sở hữu file trên Linux, kèm bảng số quyền hay dùng và cảnh báo chmod 777. 5 phút đọc 51 lượt xem Cập nhật 27/08/2026 15 lệnh Linux cơ bản cho người mới quản trị VPS Bảng tra 15 lệnh Linux thiết yếu để đi lại trong thư mục, xem và sửa file, kiểm tra tài nguyên và quản lý dịch vụ trên VPS, kèm ví dụ cho người mới. 5 phút đọc 59 lượt xem Cập nhật 26/08/2026 Kết nối VPS Linux bằng SSH với PuTTY Cách tải PuTTY, nhập IP và cổng, lưu session để lần sau vào nhanh, và đăng nhập VPS Linux lần đầu bằng tài khoản root cho người mới quản trị. 7 phút đọc 59 lượt xem Cập nhật 25/08/2026