Kết nối với máy chủ MS SQL cục bộ từ máy khách GUI


11

Tôi rất mới với SQL và máy chủ cơ sở dữ liệu. Gần đây tôi đã sử dụng SQL Server Express và truy cập cơ sở dữ liệu của mình bằng SQL Server Management Studio trên Windows. Bây giờ tôi đang cố gắng đạt được một thiết lập tương tự trên máy Linux.

Tôi muốn tạo một phiên bản SQL Server cục bộ trên máy và sau đó sử dụng SQLectron làm máy khách GUI để truy vấn cơ sở dữ liệu của tôi. Tôi đang sử dụng Manjaro Linux và vì vậy cài đặt các gói của tôi từ AUR.

Cho đến nay tôi đã cài đặt mssql-server, mssql-toolssqlectron-gui. Tôi đã chạy sudo /opt/mssql/bin/mssql-conf setuplệnh để (tôi tin) thiết lập một máy chủ cục bộ. Sau khi làm như vậy, chạy lệnh systemctl status mssql-servertrả về điều này:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Công cụ cơ sở dữ liệu Microsoft SQL Server
Đã tải: đã tải (/usr/lib/systemd/system/mssql-server.service; enable; nhà cung cấp cài sẵn: bị vô hiệu hóa)
Hoạt động: hoạt động (chạy) kể từ Thứ Tư 2017-08-23 13:43:49 IST; 2h 42 phút trước
    Tài liệu: https://docs.microsoft.com/en-us/sql/linux
Chính PID: 9130 (sqlservr)
    Nhiệm vụ: 165
Cgroup: /system.slice/mssql-server.service
        ├─9130 / opt / mssql / bin / sqlservr
        └─9144 / opt / mssql / bin / sqlservr

Ngày 23 tháng 8 13:43:52 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 145B]
Ngày 23 tháng 8 13:43:52 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 66B]
Ngày 23 tháng 8 13:43:52 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 96B]
Ngày 23 tháng 8 13:43:52 XPS-Manjaro sqlservr [9130]: [Dữ liệu blob 100B]
Ngày 23 tháng 8 13:43:52 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 71B]
Ngày 23 tháng 8 13:43:52 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 124B]
Ngày 23 tháng 8 13:49:03 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 156B]
Ngày 23 tháng 8 13:49:03 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 194B]
Ngày 23 tháng 8 13:52:31 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 74B]
Ngày 23 tháng 8 13:52:31 XPS-Manjaro sqlservr [9130]: [dữ liệu blob 199B]

Tôi hiện đang cố gắng tạo kết nối cục bộ đến máy chủ của mình thông qua SQLectron trên màn hình sau:

nhập mô tả hình ảnh ở đây

Vì tôi có rất ít kinh nghiệm với Máy chủ SQL, tôi hoàn toàn không biết phải lấy tất cả các thông tin này để kết nối với máy chủ cục bộ của mình ở đâu. Cái duy nhất tôi biết là mật khẩu mà tôi đặt trong sudo /opt/mssql/bin/mssql-conf setuplệnh.

Làm cách nào để tìm tên máy chủ, địa chỉ máy chủ (127.0.0.1?), Cổng, tên miền, đường dẫn ổ cắm Unix và tên người dùng?


Tôi chỉ làm việc với SQL Server trên Windows, nhưng nếu một số thuật ngữ có ích: Tên sẽ là tên của máy chủ (và ví dụ, nếu cần); từ những gì bạn nói, addressnhư 127.0.0.1` nên hoạt động; portnên được đặt khi bạn thiết lập máy chủ (mặc định thường là 1433); usersẽ là tên người dùng mà bạn muốn đăng nhập vào (có lẽ có thể là một tài khoản người dùng Linux, hoặc một tài khoản SQL Server (như sa), và passwordlà mật khẩu cho tài khoản đó. DatabaseSchemasẽ là cơ sở dữ liệu mặc định và schema bạn sẽ kết nối với; thử mastervà để trống, hoặc masterdbo.
RDFozz

Câu trả lời:


7

Nếu bạn đang chạy GUI trên cùng một máy với dịch vụ máy chủ mssql, thì bạn có thể sử dụng localhost cho địa chỉ (127.0.0.1). Nếu bạn đang chạy GUI từ một máy trạm khác, bạn sẽ cần địa chỉ IPv4 của máy có dịch vụ máy chủ mssql đang chạy. Bạn có thể có được điều đó bằng cách chạy ifconfigtừ dấu nhắc thiết bị đầu cuối Linux. Đầu ra mẫu từ ifconfig:

eth0: cờ = 4163 mtu 1500
        ether 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Các gói RX 423 byte 137827 (134,5 KiB)
        Lỗi RX 0 rớt 0 vượt 0 khung 0
        Gói TX 0 byte 0 (0,0 B)
        Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

eth1: cờ = 4163 mtu 1500
        inet 192.168.200.11 netmask 255.255.255.0 phát 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb tiền tố 64 scopeid 0x20
        ether 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Gói RX 20138 byte 2006000 (1.9 MiB)
        Lỗi RX 0 rớt 0 vượt 0 khung 0
        Gói TX 19756 byte 30125657 (28,7 MiB)
        Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

lo: cờ = 73 mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 :: 1 tiền tố 128 scopeid 0x10
        vòng lặp txqueuelen 1 (Vòng lặp cục bộ)
        Gói RX 3239 byte 361340 (352,8 KiB)
        Lỗi RX 0 rớt 0 vượt 0 khung 0
        Gói TX 3239 byte 361340 (352,8 KiB)
        Lỗi TX 0 rớt 0 vượt 0 nhà cung cấp 0 va chạm 0

Trong đầu ra ở trên, bit quan trọng là địa chỉ "inet", trong trường hợp của tôi là 192.168.200.11.

Cổng mặc định cho SQL Server là 1433 - trừ khi bạn chọn một cổng khác trong mssql-conf sử dụng số cổng đó. Đảm bảo tường lửa trên hộp Linux cho phép kết nối bên ngoài qua 1433, nếu bạn có ý định kết nối với SQL Server qua mạng.

Sử dụng salàm thông tin đăng nhập và mật khẩu bạn đã chỉ định trong khi thiết lập Máy chủ SQL thông qua sudo /opt/mssql/bin/mssql-conf setuplệnh.

Tôi sẽ để trống tên miền và unix socket đường dẫn.

Khi bạn đã kết nối với thể hiện, bạn có thể muốn định cấu hình tài khoản không phải là sa. Làm điều đó với CREATE LOGINtuyên bố .

Chỉ cần một FYI, bạn có thể sử dụng SQL Server Management Studio để kết nối với SQL Server trên Linux, nếu đó là mong muốn của bạn.


Liên quan đến FYI của bạn, làm cách nào tôi có thể có GUI SSMS trên Linux? Tôi đã cài đặt cả hai mssql-servermssql-tools- dường như không có ứng dụng GUI nào hoặc bất kỳ thứ gì được cài đặt liên quan đến SSMS. Vì tôi quen thuộc nhất với SSMS, tôi muốn tiếp tục sử dụng nó, nhưng không nghĩ rằng nó có sẵn trên Linux.
KOB

ồ, không, ý tôi là bạn có thể chạy SSMS trên máy trạm Windows và kết nối nó với SQL Server trên Linux.
Max Vernon

Oh ok, tôi nghĩ vậy. Không, tôi chỉ đang thử nghiệm và muốn mọi thứ chạy từ máy Linux của mình.
KOB

Lần cuối cùng tiếp theo: Nếu bây giờ tôi muốn truy cập cơ sở dữ liệu của mình từ trong tập lệnh Python, tôi có cần chỉ định cấu hình tài khoản không phải sa như bạn đã đề cập, sau đó cài đặt trình điều khiển không? Tôi đã sử dụng Trình điều khiển ODBC khi làm việc trên Windows. Trong tập lệnh Pyton của tôi trên Windows, tôi đã nhận được tên máy chủ của mình cho công cụ kết nối từ SSMS ở dạng CPX-9GL9XXXXXXX\SQLEXPRESS. Làm cách nào tôi có thể tìm thấy tên máy chủ tương đương này mà không có quyền truy cập vào SSMS?
KOB

Trình duyệt SQL Server được sử dụng để định vị các phiên bản SQL Server mà không biết trước số cổng ... vì vậy CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESStên đối tượng , dịch vụ SQL Server Browser sẽ được dịch thành số cổng. Thật không may, Trình duyệt SQL Server chưa được hỗ trợ trên Linux , vì vậy bạn cần biết số cổng, theo mặc định là 1433.
Max Vernon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.