Trong bài viết này, chúng ta sẽ thảo luận về cách cài đặt Microsoft SQL hoặc MSSQL trên Linux. Microsoft SQL, thường được gọi là MSSQL, là một hệ quản trị cơ sở dữ liệu quan hệ do Microsoft tạo ra. Mã nguồn mở MySQL và PostgreSQL thường đồng nghĩa với các bản phân phối Linux, nhưng làm việc với MSSQL trên Linux cũng được hỗ trợ. MSSQL cung cấp một số tính năng mà các đối tác mã nguồn mở của nó không có và tùy thuộc vào các yêu cầu của ứng dụng, nó có thể là lựa chọn phù hợp cho một RDBMS. Trong hướng dẫn này, chúng ta sẽ hướng dẫn cách cài đặt MSSQL trên CentOS 7 và Ubuntu 16.04.
Kiểm tra trước chuyến bay
- Bạn sẽ cần xác minh máy chủ của mình có ít nhất 2GB bộ nhớ
- Các hướng dẫn này đang được thực hiện trên máy chủ CentOS 7 và Ubuntu 16.04 LTS tương ứng với tư cách là người dùng gốc
CentOS 7
Bước 1:Thêm bản xem trước MSSQL 2019
Đầu tiên, như một phương pháp hay nhất, hãy đảm bảo tất cả các gói đều được cập nhật:
root@centos ~]# yum update -y
Tiếp theo, chúng ta cần cho người quản lý gói biết nơi tìm gói mssql-server bằng cách thêm repo thích hợp:
root@centos ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo
Bước 2:Cài đặt SQL Server
Bây giờ bạn đã biết về MSSQL repo, chúng ta có thể sử dụng bạn để cài đặt gói:
root@centos ~]# yum install -y mssql-server
Bước 3:Định cấu hình Máy chủ MSSQL
Tiếp theo, chúng ta cần định cấu hình SQL với mật khẩu quản trị viên hệ thống và xác nhận phiên bản chúng ta muốn sử dụng. Hướng dẫn này sẽ sử dụng phiên bản dành cho Nhà phát triển, lựa chọn 2, vì nó miễn phí:
root@centos ~]# /opt/mssql/bin/mssql-conf setup
usermod: no changes
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) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
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
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
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
Sau đó, chúng tôi cần xác minh rằng dịch vụ mssql đang chạy:
root@centos ~]# systemctl status mssql-server
Đầu ra sẽ giống như sau:
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 Wed 2019-10-23 20:18:03 EDT; 2min 45s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 61529 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─61529 /opt/mssql/bin/sqlservr
└─61549 /opt/mssql/bin/sqlservr
Bước 4 (Tùy chọn):Cho phép Kết nối Từ xa
Nếu bạn muốn máy chủ SQL của mình có thể truy cập từ xa, bạn sẽ phải mở cổng SQL Server:
Lưu ý :Tiến hành thận trọng. Tường lửa được đặt ra để giữ an toàn cho máy chủ của bạn bằng cách hạn chế quyền truy cập vào nó. Trừ khi bạn định truy cập SQL Server từ xa, nếu không thì không cần thiết phải mở cổng này.
root@centos ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
Sau khi thêm quy tắc, chúng tôi cần tải lại các quy tắc tường lửa của mình và xác minh rằng cổng đang mở:
[root@centos ~]# firewall-cmd --reload
success
root@centos ~]# firewall-cmd --list-ports
1433/tcp
Bước 5:Thêm kho lưu trữ Microsoft Red Hat
Bây giờ, chúng ta cần một cách để tương tác với máy chủ SQL của chúng ta. Trước tiên, hãy thêm một repo khác để chúng ta có thể sử dụng yum để cài đặt các công cụ dòng lệnh của SQL Server
root@centos ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
Bước 6:Cài đặt và thiết lập các công cụ dòng lệnh MSSQL Server
Bây giờ bạn đã biết về các gói chúng ta muốn cài đặt, chúng ta cần cài đặt chúng. Điều quan trọng cần lưu ý là trong quá trình cài đặt các gói này, sẽ có một số lời nhắc tương tác để chấp nhận các điều khoản cấp phép:
root@centos ~]# yum install -y mssql-tools unixODBC-devel
Để dễ sử dụng, chúng ta có thể thêm đường dẫn
/opt/mssql-tools/bin/
vào biến PATH trên máy chủ để chúng tôi có thể thực thi các lệnh sql từ bất kỳ vị trí nào trên máy chủ:
root@centos ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@centos ~]# source ~/.bashrc
Bước cuối cùng là xác minh rằng chúng tôi có thể tạo kết nối với SQL Server:
root@centos ~]# sqlcmd -S localhost -U SA
Password:
1>
Ubuntu 18.04 LTS
Bước 1:Thêm repo xem trước MSSQL Server Ubuntu 2019
Đầu tiên, hãy cập nhật các gói máy chủ:
root@ubuntu1604:~# apt-get update -y
Khi các gói máy chủ được cập nhật, chúng tôi cần thêm các khóa GPG cho kho lưu trữ mà chúng tôi muốn thêm. Khóa GPG là một cách để người dùng Linux xác minh tính hợp lệ của tệp và xác nhận chúng đến từ các nguồn đáng tin cậy:
t@ubuntu1604:~# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Bây giờ các khóa GPG đã có sẵn, chúng tôi có thể thêm kho lưu trữ:
root@ubuntu1604:~# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"
Kho lưu trữ chúng tôi vừa thêm yêu cầu kết nối HTTPS. Để đảm bảo rằng apt có thể kết nối với repo, chúng tôi cần chắc chắn rằng nó có thể kết nối qua https:
root@ubuntu1604:~# apt-get install -y apt-transport-https
Bước 2:Cài đặt Máy chủ MSSQL
Giờ đây, repo chứa các gói MSSQL Server đã có sẵn, tất cả những gì còn lại phải làm là đảm bảo rằng bạn biết về repo mới và cài đặt MSSQL Server:
apt-get update -y
apt-get install -y mssql-server
Bước 3:Định cấu hình Máy chủ MSSQL
Bước cấu hình giống nhau trên cả CentOS 7 và Ubuntu 16.04. Trong quá trình cấu hình, sẽ có các lời nhắc tương tác để chọn phiên bản SQL Server, chấp nhận các điều khoản cấp phép và nhập mật khẩu Quản trị viên SQL:
root@ubuntu1604:~# /opt/mssql/bin/mssql-conf setup
usermod: no changes
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) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
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
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
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
MSSQL Server bây giờ sẽ được chạy và được kích hoạt. Để xác minh rằng đây là, trên thực tế, chúng ta có thể chạy lệnh sau:
root@ubuntu1604:~# systemctl status mssql-server --no-pager
* mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-24 00:24:23 EDT; 3min 45s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 19446 (sqlservr)
Tasks: 135
Memory: 548.5M
CPU: 12.499s
CGroup: /system.slice/mssql-server.service
|-19446 /opt/mssql/bin/sqlservr
`-19485 /opt/mssql/bin/sqlservr
Bước 4 (Tùy chọn):Cho phép Kết nối Từ xa
Nếu bạn định sử dụng kết nối từ xa tới SQL Server mới của mình, bạn cần phải mở cổng SQL Server:
Lưu ý :Một lần nữa tiến hành một cách thận trọng. Tường lửa được đặt ra để giữ an toàn cho máy chủ của bạn bằng cách hạn chế quyền truy cập vào nó. Trừ khi bạn định truy cập SQL Server từ xa, nếu không thì không cần thiết phải mở cổng này.
Để giữ cho các tương tác với tường lửa của chúng tôi được ngắn gọn, hãy cài đặt ufw, còn được gọi là Tường lửa không phức tạp:
root@ubuntu1604:~# apt-get install -y ufw
Sau khi cài đặt, ufw phải được kích hoạt. Bạn sẽ thấy một cảnh báo cho biết rằng kết nối SSH của bạn có thể bị gián đoạn. Nếu phiên SSH của bạn bị ngắt kết nối, hãy đăng nhập lại và tiếp tục:
root@ubuntu1604:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
firewall is active and enabled on system startup
Bây giờ ufw đã có sẵn và được kích hoạt, đã đến lúc cho phép lưu lượng truy cập qua cổng 1433:
root@ubuntu1604:~# ufw allow 1433
Rule added
Rule added (v6)
Bước 5:Cài đặt và thiết lập các công cụ dòng lệnh MSSQL Server
Đầu tiên, như chúng ta đã làm trước đây, chúng ta cần thêm một số khóa GPG mới cho repo có chứa các công cụ dòng lệnh MSSQL:
root@ubuntu1604:~# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Bây giờ chúng ta có thể thêm kho lưu trữ:
root@ubuntu1604:~# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list
Sau đó, cập nhật apt và cài đặt các công cụ dòng lệnh:
root@ubuntu1604:~# apt-get update -y
t@ubuntu1604:~# apt-get install -y mssql-tools unixodbc-dev
Phải có một hoặc hai lời nhắc tương tác để chấp nhận giấy phép trong quá trình cài đặt trông giống như sau:
Hãy giúp bạn dễ dàng thực thi sqlcmd ở bất kỳ đâu trên máy chủ:
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
root@ubuntu1604:~# source ~/.bashrc
Cuối cùng, đã đến lúc xác minh rằng chúng ta có thể kết nối cục bộ với Máy chủ MSSQL:
root@ubuntu1604:~# sqlcmd -S localhost -U SA
Password:
1>
Bắt đầu ngay hôm nay!
Bạn có cần thiết lập một hệ thống cơ sở dữ liệu thay thế như MSSQL trên Linux không? Bạn cần hỗ trợ trong việc định cấu hình cơ sở dữ liệu hiện có hoặc khắc phục sự cố liên quan khiến bạn bực bội? Chúng tôi có một số bộ óc giỏi nhất trong ngành làm việc cho Liquid Web và chúng tôi luôn túc trực 24 giờ một ngày, 365 ngày một năm chỉ để chờ chứng minh điều đó! Chúng tôi có thể can thiệp vào bất kỳ lúc nào để cung cấp sự hỗ trợ bạn cần để giải quyết vấn đề.