SQL Server dimulai tetapi tidak mendengarkan port apa pun

9

Saya baru menginstal SQL Server 2012. Belum ada database yang dibuat. Dan saya dapat membuka Studio Manajemen dengan sa / kata sandi. Binn \ sqlservr.exe dimulai sebagai layanan dan saya dapat melihatnya dimulai dalam daftar layanan. Namun, itu tidak mendengarkan port 1433, atau bahkan, tidak mendengarkan port apa pun secara default, seperti yang saya periksa di bawah ini:

tasklist|find /I "sql"

Saya mendapatkan:

sqlservr.exe                  5668 Services                   0     40,112 K

di mana 5668 saya pikir adalah PID. Dan kemudian untuk mendapatkan PID = "5668" mendengarkan port mana:

netstat -ano | find /I "5668"

tapi aku tidak mendapat apa-apa selain kosong. Di sisi lain, setelah mencari posting di situs ini, saya memeriksa ulang konfigurasi SQL Server saya: mulai-> Semua Program -> Microsoft SQL Server 2012 -> Alat Konfigurasi -> Manajer Konfigurasi Server SQL-> SQL Server SQL Native Client 11.0 Konfigurasi -> Protokol Klien -> TCP / IP -> Port Default 1433. Ada 3 layanan, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) dan SQL Server Browser. Dua yang terakhir dihentikan.

SQL Server Configuration Manager-> SQL Server Network Configuration-> Protokol untuk MyInstanceName -> TCP / IP dinonaktifkan secara default, setelah saya mengaktifkannya dan me-restart layanan dan ulangi netstat -ano | find / I "newPIDNum" perintah yang saya temukan

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

Mengapa 52395 bukannya 1433? Dan saya gagal membuat DSN menggunakan administrator Windows ODBC Data Source yang mengembalikan saya kesalahan: SQL server yang ditentukan tidak ditemukan. Ada bantuan untuk saya? Terima kasih.


sumber
Konfigurasi SQL Server Network Default (untuk 2008, tidak dapat menemukan versi 2012 tapi saya rasa itu tidak berbeda)
Damien_The_Unbeliever
Terima kasih. Bantuan yang sangat bagus untuk saya. Ada lagi komentar tentang kreasi DSN saya?
Sepertinya Anda menggunakan instance bernama (hanya instance default yang mendengarkan 1433, sejauh yang saya ketahui). Apakah Anda menyertakan nama instance saat mencoba membuat DSN?
Damien_The_Unbeliever
Ya, ketika menginstal, saya memasukkan nama untuk Instance. Saat membuat DSN, saya diminta untuk memasukkan nama DSN (saya memasukkan nama arbiter), SQL server untuk terhubung (Ini adalah kotak pilihan drop-down dan saya mencoba dua pilihan di sini keduanya gagal, satu adalah (lokal), yang lain adalah <.MyInstanceName>),
Saya belum melihat tempat lain untuk memasukkan MyInstanceName. Dan tombol selanjutnya mengarahkan saya otentikasi serta <Konfigurasi Klien> yang dapat saya atur <Server Alias>, <Server Name> dan centang <Dynamically menentukan port>.

Jawaban:

14

Apa yang membuat server SQL saya mendengarkan TCPkoneksi pada port 1433 adalah sebagai berikut ...

  1. Alat Konfigurasi / Manajer Konfigurasi SQL Server
  2. klik nama instance dalam Konfigurasi Jaringan SQL Server
  3. aktifkan TCPkomunikasi
  4. Klik kanan TCPentri komunikasi, pilihProperties
  5. Klik tab alamat IP
  6. Aktifkan semua alamat IP non-VMnet dan masukkan 1433 dalam Portentri untuk " IPAll ".
  7. Mulai ulang SQL Server pada tab Layanan SQL Server
  8. Periksa konfigurasi Anda dengan netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING
    
belut ghEEz
sumber
1
Ini hanya satu solusi yang cocok untuk saya. Manual lain bahkan tidak mengatakan tentang port IPAII. Terima kasih
kawan
13

Mengapa 52395 bukannya 1433

Contoh bernama mendengarkan pada port dinamis. Adalah pekerjaan Layanan Browser Sql Server untuk memberi tahu klien tentang port aktual. Sql Browser mendengarkan pada UDP 1434 dan menjawab pertanyaan-pertanyaan dalam bentuk 'apa port pendengar contoh "foo"?'. Layanan Sql Server Browser diperlukan untuk protokol TCP dan pipa bernama. Klien menggunakan SQL Server Browser secara transparan, tidak perlu untuk konfigurasi khusus. Dengan hanya menentukan nama instance dalam string koneksi (atau DSN ODBC), perpustakaan klien tahu itu harus menghubungi layanan Browser SQL Server terlebih dahulu.

Sudah ada 3 layanan, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) dan SQL Server Browser. Dua yang terakhir dihentikan

Jelas untuk SQL Server Browser untuk melakukan tugasnya, itu harus dimulai. Mulai, dan ubah jenis start up menjadi otomatis.

Sebagai catatan tambahan, konfigurasi alternatif yang sering digunakan adalah menggunakan port statis untuk instance bernama dan menentukan port dalam string koneksi ( tcp:<hostname>:<port>). Itu memiliki keuntungan mengambil SQL Server Browser dari persamaan, tetapi membutuhkan pemeliharaan klien. Mengubah port mendengarkan membutuhkan perubahan yang diatur pada semua klien, semua mesin, semua lokasi, biasanya sangat menyusahkan. Saya sarankan mengambil ketergantungan pada SQL Server Browser.

Remus Rusanu
sumber
1

Firewall - 3 dari mereka

Orang-orang yang tidak terbiasa dengan versi Windows yang lebih baru (saya tidak nyaman dengan apa pun setelah XP, dan sedang mencoba menginstal SQL Server pada Windows 10):

  • Firewall Anda perlu dihidupkan di 3 tempat terpisah (yaitu untuk 3 Profil berbeda).

Jika Anda hanya melakukannya untuk yang pertama kali Anda lihat (Profil Domain), Anda masih akan bertanya-tanya mengapa Anda dapat terhubung ke port 80 (IIS) tetapi tidak 1433 (SQL Server).

masukkan deskripsi gambar di sini

Sridhar Sarnobat
sumber
1

Saya belum bisa berkomentar (reputasi rendah karena tidak terlalu aktif): Tetapi menonaktifkan Windows Firewall, seperti yang disebutkan di atas, adalah jawaban yang paling buruk. Benar adalah: Membuat aturan firewall dalam "inbound" untuk memungkinkan komunikasi Port 1433 pada IP lokal (atau semua) yang Anda butuhkan. Dan saya juga merekomendasikan untuk mengatur IP jarak jauh mana yang diizinkan untuk terhubung ke SQL Server itu.

JouMxyzptlk
sumber