Microsoft SQL Server là một cơ sở dữ liệu quan hệ dựa trên Windows và có hỗ trợ cả các bản phân phối Linux. Trong bài viết này mình sẽ hướng dẫn chi tiết cách cài đặt và sử dụng SQL Server trên Linux.
Yêu cầu về cấu hình hệ thống khi cài đặt SQL Server
SQL Server từ phiên bản 2017 trở đi sẽ hỗ trợ người dùng các hệ điều hành sau:
- Red Hat Enterprise Linux 7.7 – 7.9, hoặc 8.0 – 8.3 Server.
- Ubuntu 16.04 LTS, 18.04 LTS, Ubuntu 20.04 LTS,Ubuntu 22.04 LTS,…
- SUSE Enterprise Linux Server v12 SP3 – SP5.
- Docker Engine 1.8+ trên MAC, hoặc Linux.
- Container bằng OpenShift hoặc Kubernetes.
Để cài đặt được SQL Server trên Linux, bạn cần có cấu hình hệ thống tối thiểu như sau:
- Dung lượng HĐH: ít nhất 2GB.
- Ổ đĩa trống: Ít nhất 6GB.
- Bộ xử lý: 2GHZ, 2 lõi, tương thích x-64.
- File system: XFS hoặc EXT4.
Bên cạnh đó, trước khi tiến hành cài đặt SQL Server trên hệ điều hành Linux, bạn cần xem qua các câu lệnh trong Linux để quá trình thực hiện thao tác lệnh diễn ra suôn sẻ.
2 phiên bản cài đặt SQL Server phổ biến dễ sử dụng
Tên repository | Mô tả | Ghi chú |
mssql-server-2019 | Repo bản cập nhật CU (cumulative update) SQL Server 2019 | Chứa bản phát hành cơ bản của SQL (RTM), có chứa lỗi và các giải pháp khắc phục. |
mssql-server-2019-gdr | Repo các bản cập nhật quan trọng của SQL Server 2019 | Chứa bản phát hành cơ bản kèm theo các cập nhật quan trọng. |
Phiên bản SQL Server dành cho Linux luôn có sẵn trên các repository Microsoft, trong đó có cả phiên bản 2017 và 2019. Các repo này hỗ trợ engine cơ sở dữ liệu và các gói SEL Server liên quan. Hiện tại SQL Server dành cho Linux đã phát hành bản 2022 và đây sẽ là phiên bản được sử dụng trong bài hướng dẫn này.
3 ví dụ về cách cài đặt SQL Server trên Linux
Ví dụ 1: Cài đặt SQL Server trên Ubuntu
Bây giờ bạn sẽ bắt đầu các bước cài đặt SQL Server 2022. Hiện tại SQL Server trên Linux chỉ hỗ trợ cài đặt qua giao diện command-line. Trước khi bắt đầu, cần chú ý rằng Ubuntu 22.04 chỉ hỗ trợ SQL Server 2022 CU 10 trở đi. Đầu tiên, mở terminal rồi thực hiện các bước sau:
Bước 1: Import key GPG của public repo.
Bạn hãy download public key, chuyển đổi từ ASCII qua định dạng GPG, ghi lên vị trí đã chỉ định theo lệnh curl:
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
Tuy nhiên trong một số tình huống bạn sẽ nhận được thông báo key không có sẵn. Bạn sẽ dùng lệnh sau để tiếp tục thực thi:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
Bước 2: Đăng ký repo SQL Server 2022 Linux Ubuntu và download thủ công.
Lưu ý: SQL Server 2022 là bản 16.x và tương thích tốt nhất với Ubuntu 22.04. Nếu bạn muốn tìm lại các bản cũ 14.x (2017) hay 15.x (2019), cách làm sẽ có sự thay đổi so với hiện tại.
Bây giờ bạn cần thêm một repo APT cho SQL Server 2022 Linux trên Ubuntu 22.04 bằng lệnh sudo với tuỳ chọn add-apt:
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
Bạn có thể sử dụng lệnh cat để kiểm tra xem repo đã được cài đặt chưa bằng cách mở file /etc/apt/sources.list:
cat /etc/apt/sources.list
Bước 3: Cập nhật hệ thống.
sudo apt-get update
Bước 4: Tải và cài đặt SQL Server Linux.
Bây giờ bạn có thể chạy lệnh curl để download gói cài đặt SQL Server từ repo Microsoft (kích thước khoảng gần 300MB tại thời điểm bài viết):
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
Tiếp theo bạn chạy lệnh sau để cài đặt.
sudo apt-get install -y mssql-server
Bước 5: Cấu hình SQL Server trên Linux
Sau khi cài thành công bạn chuyển sang bước thiết lập cấu hình cho SQL Server.
sudo /opt/mssql/bin/mssql-conf setup
Ở phần chọn phiên bản, bạn có thể tham khảo bảng dưới đây:
Phiên bản | Mô tả |
1 | Evaluation (miễn phí, không có bản quyền sản xuất, giới hạn sử dụng 180 ngày). |
2 | Developer (miễn phí, không có bản quyền sản xuất). |
3 | Express (miễn phí). |
4 | Web (trả phí). |
5 | Standard (trả phí). |
6 | Enterprise (trả phí) – CPU bị giới hạn 20 lõi vật lý hoặc 40 siêu phân luồng. |
7 | Enterprise Core (trả phí) – Lõi CPU bị giới hạn bởi hệ điều hành. |
8 | Nếu đã có sẵn key kích hoạt sản phẩm. |
9 | Bản tiêu chuẩn được mua thông qua Azure |
10 | Bản Core Enterprise được mua thông qua Azure |
Sau khi chọn xong phiên bản, nhập Yes để chấp nhận các điều khoản sử dụng.
Ở các phiên bản trước, trong các bước thiết lập sẽ có thêm tùy chọn về ngôn ngữ sử dụng, theo hiện tại cụ thể là bản 16.x này, ngôn ngữ mặc định sẽ là English.
Tiếp theo bạn cần nhập mật khẩu SA (SQL Server administrator) với tối thiểu 8 ký tự, bao gồm chữ hoa và chữ thường, số và/hoặc ký hiệu không phải chữ và số.
Bây giờ có thể kiểm tra trạng thái của SQL Services bằng lệnh systemctl
:
systemctl status mssql-server --no-pager
Nếu kết quả có dạng như dưới đây thì bạn đã hoàn tất việc cấu hình SQL Server trên Linux Ubuntu 22.04 và đã sẵn sàng sử dụng.
Trường hợp: Cài đặt các công cụ command-line cho SQL Server:
Để kết nối được với SQL Server trên Linux, có thể cài đặt các công cụ dưới đây:
- SQLCMD
- Azure Data Studio
- SQL Server Management Studio (SSMS)
Với SQLCMD và Azure Data Studio đều có thể cài đặt trực tiếp trên Linux, nếu bạn muốn sử dụng SSMS thì bạn cần cài đặt trên Windows rồi kết nối từ xa đến Linux SQL:
Bước 1: Cài đặt CURL và import public key GPG:
sudo apt install curl
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
Bước 2: Đăng ký repo Microsoft Ubuntu:
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
Nếu bạn muốn thực hiện trên các phiên bản Ubuntu cũ cũng như SQL Server cũ, hãy truy cập trang tài liệu của chính Microsoft để tìm hiểu thêm về cú pháp lệnh.
Bước 3: Cập nhật danh sách nguồn repo rồi cài đặt mssql-tools:
sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev
Ngoài nếu bạn muốn cập nhật các phiên bản mới nhất của mssql-tools cần nhập 2 lệnh dưới đây:
sudo apt-get update
sudo apt-get install mssql-tools18
Sau khi quá trình cài đặt tool hoàn tất, bạn sẽ được chuyển sang phần cấu hình package msodbcsql18. Bây giờ bạn chọn Yes để tiếp tục.
Bạn tiếp tục chọn Yes để chấp nhận các điều khoản sử dụng:
Bước 4: Thêm thư mục /opt/mssql-tools18/bin/ vào biến môi trường PATH trong shell bash.
Để có thể truy cập sqlcmd và bcp từ shell bash cho các login session,bạn cũng có thể sửa đổi biến PATH
trong file ~/.bashrc như sau:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile
Với tình huống để có thể truy cập sqlcmd và bcp từ shell bash cho các session không cần đăng nhập, bạn hãy sửa đổi PATH
trong tệp ~/.bashrc
bằng lệnh sau:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
Kết nối đến SQL Server “localhost”:
Nhập lệnh SQLCMD sau để kết nối đến SQL Server:
sqlcmd -S localhost -U sa -P '<YourPassword>'
Bạn sẽ nhập mật khẩu SA để kết nối đến server SQL Server local. Sau khi kết nối thành công thì màn hình sẽ hiển thị dấu nhắc (prefix) 1> (đánh số dòng lệnh). Tiếp theo bạn thực thi lệnh SELECT @@VERSION để kiểm tra phiên bản của SQL Server:
Nếu sau này bạn quyết định sử dụng kết nối remote, bạn sẽ chỉ định tên máy hoặc địa chỉ IP cho tham số -S và đảm bảo rằng port 1433 phải được mở trên firewall hệ thống.
Tạo Database mới:
Bạn hãy gõ lệnh của Transact-SQL để tạo một database mới:
CREATE DATABASE "ten_database";
Nếu bạn muốn xem danh sách database thì hãy chạy lệnh T-SQL dưới đây. Lệnh này trả về danh sách chủ cơ sở dữ liệu hệ thống, tempdb, model và msdb có sẵn trong mỗi phiên bản SQL Server.
SELECT Name from sys.databases;
Ví dụ 2: Cài đặt SQL Server trên Arch Linux
Trước tiên, tạo vị trí lưu repo AUR rồi clone về máy:
mkdir ~/aur
cd ~/aur
git clone https://aur.archlinux.org/mssql-server.git
git clone https://aur.archlinux.org/msodbcsql.git
git clone https://aur.archlinux.org/mssql-tools.git
Trong đó:
- mssql-server : File cài đặt MS SQL Server chính
- msodbcsql: Dùng để kết nối đến MS SQL Server
- mssql-tools: Các công cụ command line để giao tiếp với SQL Server.
Sau khi clone xong, bạn cần xây dựng các gói để cài đặt bằng lệnh makepkg:
cd ~/aur/mssql-server
makepkg -sirc
cd ~/aur/msodbcsql
makepkg -sirc
cd ~/aur/mssql-tools
mkpkg -sirc
Lệnh makepkg cung cấp một số tùy chọn sau:
- -s: Cài đặt mọi dependency bị thiếu
- -i: Cài đặt package sau khi đã xây dựng xong.
- -r: Xóa mọi dependecy chỉ cần trong quá trình xây dựng.
- -c: Xóa các file hoặc thư mục thừa sau khi xây dựng xong.
Bây giờ dịch vụ mssql-server đã được cài đặt xong và tự động khởi chạy. Bạncó thể kiểm tra bằng lệnh sau:
systemctl status mssql-server.service
Output:
Nếu lệnh trả về trạng thái inactive (dead) thì hãy thử khởi động lại dịch vụ rồi cho chạy tự động:
systemctl enable --now mssql-server.service
Sau khi hoàn tất, bạn có thể chạy công cụ setup cho SQL Server:
/opt/mssql/bin/mssql-conf setup
Tương tự như quá trình cài đặt SQL Server trên Ubuntu 22.04, bạn cũng thiết lập mật khẩu admin và chọn ngôn ngữ để sử dụng.
Nếu muốn cài đặt Azure Data Studio để giao tiếp với SQL Server, có thể clone repo AUR về như sau:
cd ~/aur
git clone https://aur.archlinux.org/azuredatastudio-bin.git
cd ~/aur/azuredatastudio-bin
makepkg -sirc
Ví dụ 3: Cài đặt, kết nối trên CentOS 7 và Red Hat (RHEL)
Tiếp theo là các bước cài đặt SQL Server cho CentOS (ưu tiên CentOS 7 với khả năng tương thích với phiên bản SQL Server cần cài đặo) và Red Hat:
Bước 1: Thêm repo SQL Server:
sudo yum update -y
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/<strong>[version]</strong>/mssql-server-2019.repo
Trong đó [version] là phiên bản CentOS muốn cài đặt.
Bước 2: Cài đặt SQL Server
sudo yum install -y mssql-server
Quá trình này sẽ phân giải các dependency trước khi download và cài đặt những gói cần thiết.
Bước 3: Cấu hình SQL Server:
Khởi động công cụ cấu hình SQL Server:
sudo /opt/mssql/bin/mssql-conf setup
Sau đó chọn phiên bản, thiết lập mật khẩu admin như các bước cài đặt trên Ubuntu hay Arch Linux.
Bây giờ bạn có thể xác thực xem đã cài đặt xong chưa bằng lệnh mssql:
systemctl status mssql-server
Bước 4: Cài đặt SQL Server Command Line:
Trước tiên, thêm repo Red Hat cài đặt cho phép công cụ command-line cho SQL Server:
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
Cài đặt:
sudo yum install -y mssql-tools unixODBC-devel
Nhập Yes để đồng ý các điều khoản.
Bây giờ thêm /opt/mssql-tools/bin/ vào biến môi trường PATH vào tập lệnh để chạy tập lệnh Bash như sau:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
Khởi động công cụ command-line:
sqlcmd -S localhost -U SA
Cuối cùng là nhập mật khẩu admin để vào server.
2 bước kết nối, sử dụng SQL Server trên Linux bằng SQL Server Management Studio
- Bước 1: Thiết lập, tạo mới cơ sở dữ liệu
Các bước sau đây tạo cơ sở dữ liệu mới có username theo dạng yourname_db (yourname là username bạn muốn đặt)
CREATE DATABASE yourname_db;
Ở cú pháp tiếp theo, hãy nhập một truy vấn để trả về tên của tất cả các cơ sở dữ liệu trên server:
SELECT Name from sys.databases;
Nếu như cả 2 lệnh trước đó không được thực thi. Bạn cần phải gõ GO vào một dòng mới để thực hiện các lệnh trước
GO
- Bước 2: Kết nối, sử dụng SQL Server trên Linux với SQL Server Management Studio
Bây giờ, bạn cần sử dụng SQL Authentication để kết nối SQL Server trên Linux,. Bằng việc kết nối từ xa, bạn sẽ cần mở port SQL Server (mặc định là port 1433 qua tcp) trên Firewall.
Trường hợp bạn thiết lập firewall (tường lửa) bằng IPtables:
iptables -A INPUT -p tcp -m tcp --dport 1433 -j ACCEPT
Hoặc bạn thiết lập firewall (tường lửa) bằng FirewallD:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
Nhập thông tin tài khoản database để kết nối với SQL Server Management Studio: Server name, username (như cách thiết lập bên trên)
Sau khi kết nối thành công các bạn có thể backup/import database theo nhu cầu
Câu hỏi thường gặp
Có thể sử dụng các công cụ quản lý cơ sở dữ liệu đồ họa để kết nối đến SQL Server từ Linux không?
Có thể. Việc sử dụng công cụ quản lý CSDL đồ họa đem đến một số lợi ích nhất định trong quá trình sử dụng như giao diện trực quan gần gũi; tăng năng suất; tính năng hỗ trợ đa dạng,…
Có thể sử dụng các công cụ đồng bộ hóa dữ liệu để đồng bộ hóa dữ liệu giữa SQL Server trên Linux và các hệ thống khác không?
Có thể.
Lời kết
Bài viết này đã hướng dẫn chi tiết 3 cách cài đặt và sử dụng SQL Server trên các bản phân phối Ubuntu, Arch và Red Hat của Linux. Nếu có bất kỳ vấn đề nào trong quá trình cài đặt, hãy để lại ở phần comment bên dưới để được Vietnix hỗ trợ nhanh nhất!