Menghubungkan ke MS SQL Server lokal dari klien GUI

11

Saya sangat baru di SQL dan server database. Saya baru-baru ini menggunakan SQL Server Express dan mengakses database saya menggunakan SQL Server Management Studio di Windows. Saya sekarang mencoba untuk mencapai pengaturan serupa pada mesin Linux.

Saya ingin membuat contoh SQL Server lokal pada mesin, dan kemudian menggunakan SQLectron sebagai klien GUI untuk menanyakan database saya. Saya menggunakan Manjaro Linux dan instal paket saya dari AUR.

Sejauh ini saya telah menginstal mssql-server, mssql-toolsdan sqlectron-gui. Saya telah menjalankan sudo /opt/mssql/bin/mssql-conf setupperintah untuk (saya percaya) mengatur server lokal. Setelah melakukannya, menjalankan perintah systemctl status mssql-servermengembalikan ini:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Mesin Basis Data Microsoft SQL Server
Dimuat: dimuat (/usr/lib/systemd/system/mssql-server.service; diaktifkan; preset vendor: dinonaktifkan)
Aktif: aktif (berjalan) sejak Rabu 2017-08-23 13:43:49 IST; 2 jam 42 menit yang lalu
    Documents: https://docs.microsoft.com/en-us/sql/linux
PID Utama: 9130 (sqlservr)
    Tugas: 165
CGroup: /system.slice/mssql-server.service
        ├─9130 / opt / mssql / bin / sqlservr
        └─9144 / opt / mssql / bin / sqlservr

23 Agustus 13:43:52 XPS-Manjaro sqlservr [9130]: [145B data gumpalan]
23 Agustus 13:43:52 XPS-Manjaro sqlservr [9130]: [66B data gumpalan]
23 Agustus 13:43:52 XPS-Manjaro sqlservr [9130]: [Data gumpalan 96B]
23 Agustus 13:43:52 XPS-Manjaro sqlservr [9130]: [100B data gumpalan]
23 Agustus 13:43:52 XPS-Manjaro sqlservr [9130]: [71B gumpalan data]
23 Agustus 13:43:52 XPS-Manjaro sqlservr [9130]: [124B gumpalan data]
23 Agustus 13:49:03 XPS-Manjaro sqlservr [9130]: [156B data gumpalan]
23 Agustus 13:49:03 XPS-Manjaro sqlservr [9130]: [194B data gumpalan]
23 Agustus 13:52:31 XPS-Manjaro sqlservr [9130]: [74B data gumpalan]
23 Agustus 13:52:31 XPS-Manjaro sqlservr [9130]: [199B data gumpalan]

Saya sekarang mencoba membuat koneksi lokal ke server saya melalui SQLectron pada layar berikut:

masukkan deskripsi gambar di sini

Karena saya memiliki sedikit pengalaman dengan SQL Server, saya benar-benar bingung dengan tempat untuk mendapatkan semua kredensial ini untuk terhubung ke server lokal saya. Satu-satunya yang saya tahu adalah kata sandi yang saya atur di sudo /opt/mssql/bin/mssql-conf setupperintah.

Bagaimana cara menemukan nama server, alamat host (127.0.0.1?), Port, domain, jalur soket Unix, dan nama pengguna?

KOB
sumber
Saya hanya bekerja dengan SQL Server pada Windows, tetapi jika beberapa istilah akan membantu: Nama akan menjadi nama server (dan contohnya, jika diperlukan); dari apa yang Anda katakan, addressseperti 127.0.0.1` harus bekerja; portseharusnya sudah diatur ketika Anda mengatur server (default biasanya 1433); userakan menjadi nama pengguna yang ingin Anda masuki (mungkin bisa berupa akun pengguna Linux, atau akun SQL Server (seperti sa), dan passwordmerupakan kata sandi untuk akun itu. Databasedan Schemaakan menjadi basis data dan skema default yang akan Anda hubungkan; coba masterdan kosong, atau masterdan dbo.
RDFozz

Jawaban:

7

Jika Anda menjalankan GUI pada mesin yang sama dengan layanan server mssql, maka Anda dapat menggunakan localhost untuk alamatnya (127.0.0.1). Jika Anda menjalankan GUI dari workstation yang berbeda, Anda memerlukan alamat IPv4 dari mesin tempat layanan mssql-server berjalan. Anda bisa mendapatkannya dengan menjalankan ifconfigdari terminal Linux prompt. Output sampel dari ifconfig:

eth0: flags = 4163 mtu 1500
        eter 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Paket RX 423 byte 137827 (134,5 KiB)
        Kesalahan RX 0 turun 0 overruns 0 frame 0
        Paket TX 0 byte 0 (0,0 B)
        Kesalahan TX 0 turun 0 overruns 0 operator 0 tumbukan 0

eth1: flags = 4163 mtu 1500
        inet 192.168.200.11 netmask 255.255.255.0 disiarkan 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixlen 64 scopeid 0x20
        eter 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Paket RX 20138 byte 2006000 (1,9 MiB)
        Kesalahan RX 0 turun 0 overruns 0 frame 0
        Paket TX 19756 byte 30125657 (28,7 MiB)
        Kesalahan TX 0 turun 0 overruns 0 operator 0 tumbukan 0

lo: flags = 73 mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10
        loop txqueuelen 1 (Loopback Lokal)
        Paket RX 3239 byte 361340 (352,8 KiB)
        Kesalahan RX 0 turun 0 overruns 0 frame 0
        Paket TX 3239 byte 361340 (352,8 KiB)
        Kesalahan TX 0 turun 0 overruns 0 operator 0 tumbukan 0

Dalam output di atas, bit yang penting adalah alamat "inet", yang dalam kasus saya adalah 192.168.200.11.

Port default untuk SQL Server adalah 1433 - kecuali jika Anda memilih port lain di mssql-conf gunakan nomor port itu. Pastikan firewall pada kotak Linux memungkinkan koneksi luar melalui 1433, jika Anda bermaksud untuk terhubung ke SQL Server melalui jaringan.

Gunakan sasebagai login, dan kata sandi yang Anda tentukan selama pengaturan SQL Server melalui sudo /opt/mssql/bin/mssql-conf setupperintah.

Saya akan membiarkan domain dan mengosongkan jalur soket kosong.

Setelah terhubung ke instance, Anda mungkin ingin mengonfigurasi akun non-sa. Lakukan itu dengan CREATE LOGINpernyataan .

Hanya FYI, Anda dapat menggunakan SQL Server Management Studio untuk terhubung ke SQL Server di Linux, jika itu keinginan Anda.

Max Vernon
sumber
Sehubungan dengan FYI Anda, bagaimana saya bisa mendapatkan SSUI GUI di Linux? Saya telah menginstal keduanya mssql-serverdan mssql-tools- tidak ada yang tampaknya memiliki semacam aplikasi GUI atau apa pun yang diinstal berkaitan dengan SSMS. Karena saya paling akrab dengan SSMS, saya lebih suka untuk terus menggunakannya, tetapi tidak berpikir itu tersedia di Linux.
KOB
oh, tidak, maksud saya Anda bisa menjalankan SSMS pada workstation Windows , dan menghubungkannya ke SQL Server di Linux.
Max Vernon
Oh ok, saya pikir juga begitu. Tidak, saya hanya bereksperimen dan ingin semuanya berjalan dari mesin Linux saya.
KOB
Satu tindak lanjut terakhir: Jika saya sekarang ingin mengakses database saya dari dalam skrip Python, apakah saya hanya perlu mengkonfigurasi akun non-sa saya seperti yang Anda sebutkan, dan kemudian menginstal beberapa driver? Saya menggunakan Driver ODBC ketika bekerja pada Windows. Dalam skrip Pyton saya di Windows, saya mendapatkan nama server saya untuk mesin koneksi dari SSMS yang dalam bentuk CPX-9GL9XXXXXXX\SQLEXPRESS. Bagaimana saya bisa menemukan nama server yang setara ini tanpa memiliki akses ke SSMS?
KOB
SQL Server Browser digunakan untuk mencari instance SQL Server tanpa mengetahui nomor port terlebih dahulu ... jadi untuk CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSadalah nama instance , yang akan diterjemahkan oleh layanan SQL Server Browser ke nomor port. Sayangnya, SQL Server Browser belum didukung di Linux , jadi Anda perlu mengetahui nomor port, yang secara default adalah 1433.
Max Vernon