Cài đặt SQL Server 2019 trên CentOS 8 - Install SQL Server 2019 on CentOS 8

Bài viết này sẽ hướng dẫn bạn cách install SQL Server 2019 (MS SQL) trên CentOS 8. MS SQL là hệ thống cơ sở dữ liệu quan hệ của Microsoft được mã nguồn mở từ năm 2016. Bắt đầu từ SQL Server 2017, nó đã có sẵn trên RHEL và các bản phân phối Linux khác.

Phiên bản của MS SQL Server được cung cấp cho MS SQL 2017 và MS SQL 2019. Làm theo các bước trong các phần tiếp theo để cài đặt và chạy Microsoft SQL Server (MS SQL) 2019 trên máy chủ Linux CentOS 8.

Dưới đây là các yêu cầu hệ thống tối thiểu để chạy MS SQL Server 2019 trên CentOS 8 Linux:

  • Bộ nhớ tối thiểu 3 GB
  • Bộ xử lý CPU với tốc độ tối thiểu 1,4 GHz. Tuy nhiên, đề xuất là >= 2 GHz
  • SQL Server yêu cầu tối thiểu 10 GB dung lượng đĩa cứng có sẵn

Bước 1: Thêm kho lưu trữ Microsoft SQL Server 2019

Các gói máy chủ cơ sở dữ liệu Microsoft SQL có sẵn trên kho lưu trữ Red Hat và cần phải được thêm vào bằng cách thủ công.

sudo curl https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo -o /etc/yum.repos.d/mssql-server-2019.repo 
sudo curl https://packages.microsoft.com/config/rhel/8/prod.repo -o /etc/yum.repos.d/msprod.repo

Bước 2: Install SQL Server 2019 trên CentOS 8

Tất cả các gói cần thiết cho Microsoft SQL Server 2019 đều có trên các kho lưu trữ đã được thêm. Bây giờ bạn chỉ cần thực hiện các lệnh dưới đây để install SQL Server 2019 trên CentOS 8 Linux.

sudo dnf -y install mssql-server

Dependency tree:

Dependencies resolved.
======================================================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================================================
Installing:
mssql-server x86_64 15.0.4223.1-2 packages-microsoft-com-mssql-server-2019 254 M
Installing dependencies:
cpp x86_64 8.5.0-10.el8.alma appstream 10 M
gc x86_64 7.6.4-3.el8 appstream 109 k
gcc x86_64 8.5.0-10.el8.alma appstream 23 M
gdb x86_64 8.2-18.el8 appstream 298 k
gdb-headless x86_64 8.2-18.el8 appstream 3.7 M
glibc-devel x86_64 2.28-189.1.el8 baseos 78 k
glibc-headers x86_64 2.28-189.1.el8 baseos 482 k
guile x86_64 5:2.0.14-7.el8 appstream 3.5 M
isl x86_64 0.16.1-6.el8 appstream 841 k
kernel-headers x86_64 4.18.0-372.9.1.el8 baseos 9.3 M
libatomic x86_64 8.5.0-10.el8.alma baseos 23 k
libatomic_ops x86_64 7.6.2-3.el8 appstream 38 k
libbabeltrace x86_64 1.5.4-3.el8 baseos 200 k
libipt x86_64 1.6.1-8.el8 appstream 50 k
libxcrypt-devel x86_64 4.1.1-6.el8 baseos 24 k
Installing weak dependencies:
gcc-gdb-plugin x86_64 8.5.0-10.el8.alma appstream 118 k

Transaction Summary
======================================================================================================================================================================================================
Install 17 Packages

Total download size: 306 M
Installed size: 1.3 G

Chấp nhận giấy phép thỏa thuận khi bạn thấy một cửa sổ hộp thoại hiển thị:

The license terms for this product can be downloaded from
https://aka.ms/odbc17eula and found in
/usr/share/doc/msodbcsql17/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.

Do you accept the license terms? (Enter YES or NO)
YES

Bước 3: Cài đặt công cụ dòng lệnh SQL Server

Sau đó cài đặt mssql-tools cùng với gói phát triển unixODBC.

sudo yum -y install mssql-tools unixODBC-devel 

Chấp nhận giấy phép:

Do you accept the license terms? (Enter YES or NO)
YES
Installing : msodbcsql17-17.9.1.1-1.x86_64 2/4
Running scriptlet: msodbcsql17-17.9.1.1-1.x86_64 2/4
Running scriptlet: mssql-tools-17.9.1.1-1.x86_64
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.

Do you accept the license terms? (Enter YES or NO)
YES

Xác nhận cài đặt.

$ rpm -qi mssql-server
Name : mssql-server
Version : 15.0.4223.1
Release : 2
Architecture: x86_64
Install Date: Tue May 17 13:07:24 2022
Group : Unspecified
Size : 1297602388
License : Commercial
Signature : RSA/SHA256, Mon Apr 18 23:35:10 2022, Key ID eb3e94adbe1229cf
Source RPM : mssql-server-15.0.4223.1-2.src.rpm
Build Date : Mon Apr 18 23:01:25 2022
Build Host : a1a003afc000000.qzwxqe3wa2kubparrevzc0ivhc.xx.internal.cloudapp.net
Relocations : (not relocatable)
Summary : Microsoft SQL Server Relational Database Engine
....

$ rpm -qi mssql-tools
Name : mssql-tools
Version : 17.9.1.1
Release : 1
Architecture: x86_64
Install Date: Tue May 17 13:08:30 2022
Group : Applications/Driver
Size : 730855
License : http://go.microsoft.com/fwlink/?LinkId=746949
Signature : RSA/SHA256, Wed Feb 9 20:23:23 2022, Key ID eb3e94adbe1229cf
Source RPM : mssql-tools-17.9.1.1-1.src.rpm
Build Date : Wed Feb 9 01:07:07 2022
Build Host :
Relocations : (not relocatable)
Packager : Microsoft SQL Tools Team <mssql-tools@microsoft.com>
Summary : Tools for Microsoft(R) SQL Server (R)
Description :
This Package contains tools for Microsoft(R) SQL Server(R)
....

Bước 4: Khởi tạo công cụ cơ sở dữ liệu MS SQL

Sau khi hoàn thành việc cài đặt gói, chạy lệnh mssql-conf setup và làm theo các hướng dẫn để thiết lập mật khẩu SA và chọn phiên bản bạn muốn.

sudo /opt/mssql/bin/mssql-conf setup

1. Chọn một phiên bản bạn muốn sử dụng

Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID)
7) Enterprise Core (PAID)
8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 2

Gợi ý bạn chọn 2 - Developer vì nó miễn phí, không có quyền sử dụng trong môi trường sản xuất.

2. Chấp nhận các điều khoản của giấy phép

The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Do you accept the license terms? [Yes/No]: Yes

3. Đặt mật khẩu quản trị hệ thống SQL Server:

Enter the SQL Server system administrator password: <Password>
Confirm the SQL Server system administrator password: <Confirm-Password>
Configuring SQL Server...

ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

Dịch vụ nên được khởi động và thiết lập khởi động chung với hệ thống.

$ systemctl status mssql-server.service 
● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-05-17 13:10:00 EAT; 29s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 8699 (sqlservr)
Tasks: 157
Memory: 727.2M
CGroup: /system.slice/mssql-server.service
├─8699 /opt/mssql/bin/sqlservr
└─8727 /opt/mssql/bin/sqlservr
May 17 13:10:03 cent8.novalocal sqlservr[8699]: [61B blob data]
May 17 13:10:03 cent8.novalocal sqlservr[8699]: [96B blob data]
May 17 13:10:03 cent8.novalocal sqlservr[8699]: [66B blob data]

$ systemctl is-enabled mssql-server.service
enabled

Thêm đường dẫn /opt/mssql/bin/ vào biến $PATH của bạn:

echo 'export PATH=$PATH:/opt/mssql/bin:/opt/mssql-tools/bin' | sudo tee /etc/profile.d/mssql.sh

Nhập tệp để bắt đầu sử dụng các tệp thực thi MS SQL trong phiên shell hiện tại của bạn:

source /etc/profile.d/mssql.sh

Nếu bạn đang sử dụng dịch vụ Firewalld hoạt động, hãy cho phép các cổng SQL Server để các máy kết nối từ xa:

sudo firewall-cmd --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

Bước 5: Kiểm tra máy chủ SQL

Kết nối tới SQL Server và xác nhận rằng nó đang hoạt động.

$ sqlcmd -S localhost -U SA

Xác thực bằng mật khẩu đã đặt trong Bước 4.

Hiển thị người dùng cơ sở dữ liệu:

1> select name from sysusers;
2> go
name
MS_AgentSigningCertificate##
MS_PolicyEventProcessingLogin##
db_accessadmin
db_backupoperator
db_datareader
db_datawriter
db_ddladmin
db_denydatareader
db_denydatawriter
db_owner
db_securityadmin
dbo
guest
INFORMATION_SCHEMA
public
sys
(16 rows affected)
1>

Tạo một cơ sở dữ liệu thử nghiệm:

CREATE DATABASE mytestDB
SELECT Name from sys.Databases
GO
USE mytestDB
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
GO
SELECT * FROM Inventory LIMIT 1;

Hiển thị cơ sở dữ liệu trên máy chủ SQL.

1> select name,database_id from sys.databases; 
2> go
name database_id
------------- -----------
master 1
tempdb 2
model 3
msdb 4
testDB 5
(5 rows affected)

Xóa một cơ sở dữ liệu:

1> DROP DATABASE testDB;
2> GO

Mọi người cũng tìm kiếm: sql server 8.0, sql server centos.