Cài đặt sql server trên linux

Tuần trước chúng ta đã có thể gặp nhau phiên bản xem trước của SQL Server dành cho Gnu / Linux, một phiên bản mặc dù đang trong quá trình thử nghiệm có thể được cài đặt trên bất kỳ máy tính Linux nào. Phiên bản này được chuẩn bị sẵn để nó rất dễ cài đặt trong Ubuntu nhưng nó có thể được cài đặt trong bất kỳ bản phân phối nào khác như Fedora.

Trong hướng dẫn nhỏ này Chúng tôi cho bạn biết cách thực hiện đơn giản và nhanh chóng không có kiến ​​thức sâu rộng về cơ sở dữ liệu nhưng để có thể làm việc đúng với nó, chúng ta phải biết một số điều về cơ sở dữ liệu.

Index

Cài đặt SQL Server

Như với nhiều chương trình gần đây, Không thể tìm thấy SQL Server trong kho lưu trữ Fedora, vì vậy trước tiên chúng ta phải kết hợp chúng vào kho lưu trữ bằng cách nhập nội dung sau vào một thiết bị đầu cuối:

sudo su -
curl //packages.microsoft.com/config/rhel/7/mssql-server.repo & /etc/yum.repos.d/mssql-server.repo
curl //packages.microsoft.com/config/rhel/7/prod.repo & /etc/yum.repos.d/msprod.repo
exit

Khi chúng tôi đã thêm các kho này, bây giờ chúng tôi phải cài đặt cơ sở dữ liệu Microsoft trong bản phân phối và chúng tôi thực hiện như sau:

sudo dnf -y install mssql-server mssql-tools

Cấu hình máy chủ SQL trên Fedora

Sau đó, chúng tôi phải bắt đầu tập lệnh cấu hình, nhưng đối với điều này, trước tiên chúng tôi phải mở cổng mà SQL Server sẽ sử dụng, đối với điều này, chúng tôi viết như sau:

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

Và sau đó, bây giờ chúng ta có thể bắt đầu cấu hình cơ sở dữ liệu:

sudo /opt/mssql/bin/sqlservr-setup

Bây giờ cho bắt đầu dịch vụ khi chúng tôi khởi động Fedora chúng tôi viết như sau:

sudo systemctl enable mssql-server mssql-server-telemetry

Và nếu chúng ta muốn khởi động dịch vụ SQL Server trong phiên chúng ta đang chạy, thì chúng ta phải làm như sau:

sudo systemctl start mssql-server mssql-server-telemetry

Và đây là tất cả những gì bạn phải làm để có SQL Server trong Fedora, tuy nhiên bạn phải nhớ rằng đó là bản Xem trước, nghĩa là nó không phải là một phiên bản cuối cùng, vì vậy bạn phải cẩn thận với công việc mà chúng tôi để phần mềm mới này thực hiện trong Gnu / Linux.

MS SQL Server là hệ quản trị CSDL của Microsft, nó là hệ quản trị CSDL mạnh được dùng rộng rãi, hiện nay nó có các phiên bản trên Windows và Linux. Microsft cũng cung cấp phiên bản Image để tạo ra các container Docker: mcr.microsoft.com/mssql/server:2017-latest.

Khi sử dụng Image

docker volume create vmssql
4 lưu ý một số điểm:

  • User quản trị mặc định MS SQLServer có tên là
    docker volume create vmssql
    5.
  • Password được thiết lập bằng biến môi trường
    docker volume create vmssql
    6 [Đặt password phải mệnh, từ 8 ký tự, gồm số, chữ].
  • Yêu cầu hệ thống cần tối thiểu 2GB RAM, như vậy cần đảm bảo Docker có đủ RAM khi chạy MSSQL
  • Khi chạy Docker trên macOS chưa hỗ trợ ánh xạ trực tiếp thư mục Host vào Container MSSQL [Windows, Linux bình thường] nhưng mount Volume thì hoạt động bình thường.
  • Ngoài ra cũng cần thiết lập biến môi trường
    docker volume create vmssql
    7
  • Cổng kết nối mặc định là
    docker volume create vmssql
    8

Cài đặt, chạy MS SQL Server

Để dữ liệu MSSQLServer không bị mất khi xóa Container cần tạo ra một ổ đĩa để ánh xạ vào container, ta tạo ổ đĩa đặt tên là

docker volume create vmssql
9.

docker volume create device=path_in_host vmssql

Trên máy macOS có thể không gán ngay thư mục host vào được thì chỉ dùng

docker volume create vmssql

Giờ sẽ tạo/chạy container với thông số sau:

  • Đặt password cho tài khoản
    docker volume create vmssql
    5 là
    docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    1
  • Public xạ cổng
    docker volume create vmssql
    8 vào container
  • Ánh xạ ổ đĩa
    docker volume create vmssql
    9 vào thư mục
    docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    4 [nơi lưu DB]
  • Đặt tên container là
    docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    5
docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

Như vậy đã có MS SQLServer đang chạy, kết nối đến nó qua cổng

docker volume create vmssql
8.

Kết nối MS SQL Server

Nếu đang sử dụng Windows thì cài đặt và sử dụng công cụ SSMS [SQL Server Management Studio ] là công cụ tốt nhất để kết nối và quản lý SQL Server [Tải về SSMS].

Trong container

docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
5 có sẵn công cụ
docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
8 [/opt/mssql-tools/bin/sqlcmd] để có thể kết nối, tương tác với SQL SERVER ngay tại container.

Vào container đang chạy:

docker exec -it c-mssql bash

Tại đây nếu muốn đổi password của

docker volume create vmssql
5 gõ:

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'oldpassword' \
   -Q 'ALTER LOGIN SA WITH PASSWORD="newpassword"'

Thực hiện kết nối SQL Server

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password789'

Nếu kết nối thành công, xuất hiện dấu nhắc

docker exec -it c-mssql bash
0 để nhập và chạy các query [
docker exec -it c-mssql bash
1], gõ các query xong để thi hành cần gõ
docker exec -it c-mssql bash
2 ở dòng mới.

Ví dụ một vài Query

-- liệt kê các database:
select name from master.dbo.sysdatabases

-- chuyển database:
use database_name


-- chuyển database:
use database_name

Azure Data Studio

Nếu muốn dùng một ứng dụng có giao diện trực quan để kết nối, quản lý, chạy các query tương tự như [SQL Server Management Studio] chạy được trên

docker exec -it c-mssql bash
3,
docker exec -it c-mssql bash
4,
docker exec -it c-mssql bash
5 thì công cụ
docker exec -it c-mssql bash
6 của MS là lựa chọn rất tốt, đây là phần mềm nguồn mở, các chức năng có thể bổ sung bằng các extension.

Tải về và cài đặt tại: Azure Data Studio.

Kết nối với MS SQL Server

Tương tác với SQL Server trực quan

docker-compose dịch vụ MSSQL và restore với sqlcmd

Có thể sử dụng

docker run -e 'ACCEPT_EULA=Y' --name c-mssql -e 'SA_PASSWORD=Password789' -p 1433:1433 -v vmssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
8 để phục hồi CSDL từ một file backup. Giả sử có file backup tên là
docker exec -it c-mssql bash
8 nó là bản backup CSDL. Để phục hồi nó, đầu tiên cần kiểm tra xem nó có những media nào lưu vào:

Kiểm tra file backup

/opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'Password123' \
   -Q "RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/xtlab.bak'"

Tùy cách backup mà có những thành phần khác nhau, ví dụ ở file trên

xtlab           C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\xtlab.mdf          D    PRIMARY  ...
xtlab_log       C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\xtlab_log.ldf      L    NULL     ...

Nghĩa là bên trong nó có hai file, phần dữ liệu chính

docker exec -it c-mssql bash
9 và phần log là
sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'oldpassword' \
   -Q 'ALTER LOGIN SA WITH PASSWORD="newpassword"'
0

phục hồi backup

Với 2 file dữ liệu lưu trong backup như trên, tiến hành restore

docker exec -it c-mssql bash
8 thành CSDL với
docker exec -it c-mssql bash
9 như sau:

/opt/mssql-tools/bin/sqlcmd \
    -S localhost -U SA -P 'Password123' \
    -Q 'RESTORE DATABASE xtlab FROM DISK = "/var/opt/mssql/backup/xtlab.bak" WITH MOVE "xtlab" TO "/var/opt/mssql/data/xtlab.mdf", MOVE "xtlab_log" TO "/var/opt/mssql/data/xtlab_log.ldf"'

Một ví dụ docker-compose và CSDL MS SQLServer để thực hành

Ở đây có một file backup CSDL xtlab.bak, nó là bản backup của một CSDL SQL Server, CSDL này có các bảng và dữ liệu đúng theo các ví dụ phần Học SQL. Hãy tải nó về lưu vào thư mục [hãy tạo ra thư mục

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'oldpassword' \
   -Q 'ALTER LOGIN SA WITH PASSWORD="newpassword"'
3] với đường dẫn
sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P 'oldpassword' \
   -Q 'ALTER LOGIN SA WITH PASSWORD="newpassword"'
4

Chủ Đề