Bagikan melalui


Mulai cepat: Menginstal SQL Server dan membuat database di Subsistem Windows untuk Linux (WSL 2)

Berlaku untuk:SQL Server di Linux

Subsistem Windows untuk Linux (WSL) adalah fitur di Windows yang memungkinkan Anda menjalankan lingkungan Linux langsung di komputer Windows Anda, tanpa perlu komputer virtual atau booting ganda. WSL memberikan pengalaman yang mulus dan produktif bagi pengembang yang ingin menggunakan Windows dan Linux secara bersamaan. Untuk informasi selengkapnya, lihat Apa itu Subsistem Windows untuk Linux?

SQL Server di WSL hanya untuk penggunaan pengembangan

SQL Server di WSL 2 ditujukan hanya untuk tujuan pengembangan, dan tidak didukung untuk beban kerja produksi. Sebaiknya jalankan SQL Server di lingkungan WSL di salah satu platform Didukung seperti yang didokumentasikan, untuk versi SQL Server yang ingin Anda jalankan.

Untuk masalah terkait dukungan apa pun, Anda dapat mendapatkan dukungan dari Microsoft.

Mulai menggunakan SQL Server di WSL 2

Ada dua cara untuk mulai menggunakan SQL Server di WSL 2:

  • Instal SQL Server sebagai layanan systemd, yang dapat dikelola menggunakan perintah systemctl. Pastikan Anda mengaktifkan systemd di WSL. Untuk informasi selengkapnya, lihat Cara mengaktifkan systemd.

  • Sebarkan kontainer SQL Server di WSL. Untuk opsi ini, Anda perlu menginstal mesin kontainer Linux di WSL, seperti Docker atau Podman, lalu menyebarkan kontainer SQL Server.

Prasyarat

Instal WSL 2. Pastikan Anda menjalankan Windows 10 versi 2004 atau versi yang lebih baru (Build 19041 dan yang lebih tinggi), atau Windows 11. Untuk menginstal WSL, buka perintah PowerShell atau Windows dalam mode administrator, dan ikuti instruksi di bagian berikutnya.

Untuk instruksi terperinci, lihat Cara menginstal Linux di Windows dengan WSL. Untuk informasi tentang menyiapkan lingkungan WSL untuk pengembangan, lihat Menyiapkan lingkungan pengembangan WSL.

Menginstal SQL Server di WSL

Bagian ini menjelaskan langkah-langkah untuk menyiapkan distribusi Linux di WSL, dan cara menginstal SQL Server dalam distribusi Linux tersebut.

Pilih distribusi Linux

Anda dapat mencantumkan semua distribusi valid yang dapat diinstal di WSL menggunakan perintah berikut:

wsl -l -o

Output terlihat mirip dengan contoh berikut.

The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

Untuk mulai cepat ini, instal Ubuntu 22.04, lalu instal SQL Server 2022 ke dalam distribusi tersebut.

Untuk menginstal Ubuntu 22.04, jalankan perintah berikut. Catat akun pengguna dan kata sandi UNIX. Dalam contoh ini, gunakan wsluser sebagai nama pengguna.

wsl --install -d Ubuntu-22.04

Anda akan melihat output yang mirip dengan contoh berikut. Pada akhirnya, itu harus menunjukkan bahwa Anda masuk ke shell bash Ubuntu 22.04.

Installing: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS has been installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wsluser
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Tue Dec  3 00:32:14 IST 2024

  System load:  0.33                Processes:             32
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 2%                  IPv4 address for eth0: 10.18.123.249
  Swap usage:   0%

This message is shown once a day. To disable it please create the
/home/wsluser/.hushlogin file.

Menginstal SQL Server

Setelah masuk ke shell bash Ubuntu 22.04, Anda dapat mengikuti langkah-langkah yang diuraikan dalam Mulai Cepat: Menginstal SQL Server dan membuat database di Ubuntu untuk menginstal SQL Server 2022.

Anda juga perlu menginstal alat baris perintah SQL Server.

Mendapatkan alamat IP

Untuk mengidentifikasi alamat IP yang akan disambungkan menggunakan SQL Server Management Studio (SSMS), jalankan perintah ifconfig sebagai berikut:

ifconfig

Anda akan melihat output yang mirip dengan contoh berikut.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.19.50.241  netmask 255.255.240.0  broadcast 10.19.63.255
        inet6 fe80::215:5dff:fe76:c05d  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:76:c0:5d  txqueuelen 1000  (Ethernet)
        RX packets 2146  bytes 1452448 (1.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1905  bytes 345288 (345.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2039  bytes 4144340 (4.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2039  bytes 4144340 (4.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Menyebarkan kontainer SQL Server di WSL

Untuk menyebarkan kontainer di WSL, Pertama-tama Anda perlu menginstal mesin kontainer Linux, seperti Docker. Untuk informasi selengkapnya, lihat Mulai menggunakan kontainer jarak jauh Docker di WSL. Setelah Anda menginstal mesin Docker, sebarkan gambar kontainer SQL Server sebagai berikut.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-d mcr.microsoft.com/mssql/server:2022-latest

Saat Anda menyebarkan kontainer untuk SQL Server 2025 (17.x) atau versi yang lebih baru, gunakan MSSQL_PID=DeveloperStandard untuk edisi Pengembang Standar, dan MSSQL_PID=Developer untuk edisi Pengembang Perusahaan.

Nota

Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.

Menambahkan penyimpanan persisten dengan WSL untuk kontainer SQL Server

Anda dapat membuat volume data seperti yang dijelaskan di Memasang direktori host sebagai volume data.

Misalnya, jalankan perintah berikut untuk menyiapkan volume bernama sql_volume yang terletak di /var/opt/mssql/.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-v sql_volume:/var/opt/mssql/ \
-d mcr.microsoft.com/mssql/server:2022-latest

Saat Anda menyebarkan kontainer untuk SQL Server 2025 (17.x) atau versi yang lebih baru, gunakan MSSQL_PID=DeveloperStandard untuk edisi Pengembang Standar, dan MSSQL_PID=Developer untuk edisi Pengembang Perusahaan.

Bahkan jika Anda menjalankan perintah wsl --terminate, data tidak hilang. Saat Anda memulai WSL lagi dan menjalankan perintah docker run untuk menyebarkan menggunakan volume sql_volume, WSL masih memiliki semua data yang utuh.

Jika Anda ingin menghapus volume yang bertahan, pastikan bahwa kontainer yang menggunakan volume dihentikan dan dihapus, dan jalankan perintah berikut.

docker volume rm sql_volume

Komentar

Anda harus dapat mengonfigurasi sebagian besar fitur yang didukung untuk SQL Server di Linux untuk tujuan pengembangan, kecuali fitur kelangsungan bisnis yang bergantung pada tumpukan pengklusteran. Fitur-fitur ini, seperti Pacemaker atau HPE Serviceguard, tidak didukung di WSL.

Untuk daftar lengkap fitur yang tidak didukung untuk SQL Server di Linux, lihat Edisi dan fitur SQL Server 2022 yang didukung di Linux.

Menghubungkan secara lokal

Langkah-langkah berikut menggunakan sqlcmd untuk menyambungkan secara lokal ke instans SQL Server baru Anda.

Peringatan

Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.

  1. Jalankan sqlcmd dengan parameter untuk nama SQL Server Anda (-S), nama pengguna (-U), dan kata sandi (-P). Dalam tutorial ini, Anda terhubung secara lokal, sehingga nama server localhost. Nama pengguna sa dan kata sandi adalah nama yang Anda berikan untuk akun sa selama penyiapan.

    sqlcmd -S localhost -U sa -P '<password>'
    

    Nota

    Versi sqlcmd yang lebih baru aman secara default. Untuk informasi selengkapnya tentang enkripsi koneksi, lihat utilitas sqlcmd untuk Windows, dan Menyambungkan dengan sqlcmd untuk Linux dan macOS. Jika koneksi tidak berhasil, Anda dapat menambahkan opsi -No untuk sqlcmd untuk menentukan bahwa enkripsi bersifat opsional, bukan wajib.

    Anda dapat menghilangkan kata sandi pada baris perintah yang akan diminta untuk memasukkannya.

    Jika nanti Anda memutuskan untuk terhubung dari jarak jauh, tentukan nama mesin atau alamat IP untuk parameter -S, dan pastikan port 1433 terbuka di firewall Anda.

  2. Jika berhasil, Anda harus masuk ke prompt perintah sqlcmd: 1>.

  3. Jika Anda mendapatkan kegagalan koneksi, pertama-tama coba diagnosis masalah dari pesan kesalahan. Kemudian tinjau rekomendasi pemecahan masalah koneksi .

Membuat dan mengkueri data

Bagian berikut memandu Anda menggunakan sqlcmd untuk membuat database baru, menambahkan data, dan menjalankan kueri sederhana.

Untuk informasi selengkapnya tentang menulis pernyataan dan kueri Transact-SQL, lihat Tutorial : Menulis pernyataan Transact-SQL.

Membuat database baru

Langkah-langkah berikut membuat database baru bernama TestDB.

  1. Dari prompt perintah sqlcmd , tempelkan perintah Transact-SQL berikut untuk membuat database uji coba:

    CREATE DATABASE TestDB;
    
  2. Pada baris berikutnya, tulis kueri untuk mengembalikan nama semua database di server Anda:

    SELECT Name
    FROM sys.databases;
    
  3. Dua perintah sebelumnya tidak segera dijalankan. Anda harus mengetik GO pada baris baru untuk menjalankan perintah sebelumnya:

    GO
    

Sisipkan data

Selanjutnya buat tabel baru, dbo.Inventory, dan sisipkan dua baris baru.

  1. Dari prompt perintah sqlcmd, alihkan konteks ke database TestDB yang baru.

    USE TestDB;
    
  2. Buat tabel baru bernama dbo.Inventory:

    CREATE TABLE dbo.Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. Sisipkan data ke dalam tabel baru:

    INSERT INTO dbo.Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO dbo.Inventory
    VALUES (2, 'orange', 154);
    
  4. Ketik GO untuk menjalankan perintah sebelumnya:

    GO
    

Pilih data

Sekarang, jalankan kueri untuk mengembalikan data dari tabel dbo.Inventory.

  1. Dari prompt perintah sqlcmd, masukkan kueri yang menampilkan baris dari tabel dbo.Inventory di mana jumlah lebih besar dari 152.

    SELECT *
    FROM dbo.Inventory
    WHERE quantity > 152;
    
  2. Jalankan perintah:

    GO
    

Keluar dari prompt perintah sqlcmd

Untuk mengakhiri sesi sqlcmd Anda, ketik QUIT:

QUIT

Praktik terbaik untuk performa

Setelah menginstal SQL Server di Linux, tinjau praktik terbaik untuk mengonfigurasi Linux dan SQL Server untuk meningkatkan performa skenario produksi. Untuk informasi selengkapnya, lihat praktik terbaik performa dan panduan konfigurasi untuk SQL Server di Linux.

Alat data lintas platform

Selain sqlcmd, Anda dapat menggunakan alat lintas platform berikut untuk mengelola SQL Server:

Alat Deskripsi
Visual Studio Code Editor kode GUI lintas platform yang menjalankan pernyataan Transact-SQL dengan ekstensi MSSQL.
PowerShell Alat otomatisasi dan konfigurasi lintas platform berdasarkan cmdlet.
mssql-cli Antarmuka baris perintah lintas platform untuk menjalankan perintah Transact-SQL.

Menghubungkan dari Windows

Alat SQL Server di Windows terhubung ke instans SQL Server di Linux dengan cara yang sama seperti mereka akan terhubung ke instans SQL Server jarak jauh apa pun.

Jika Anda memiliki komputer Windows yang dapat tersambung ke komputer Linux Anda, coba langkah yang sama dalam artikel ini dari perintah Windows yang menjalankan sqlcmd. Anda harus menggunakan nama komputer Linux target atau alamat IP daripada localhost, dan memastikan bahwa port TCP 1433 terbuka pada komputer SQL Server. Jika Anda mengalami masalah saat menyambungkan dari Windows, lihat rekomendasi pemecahan masalah koneksi .

Untuk alat lain yang berjalan di Windows tetapi tersambung ke SQL Server di Linux, lihat:

  • SQL Server Management Studio (SSMS)
  • Windows PowerShell
  • SQL Server Data Tools (SSDT)

Skenario penyebaran lainnya

Untuk skenario penginstalan lainnya, lihat sumber daya berikut:

Untuk jawaban atas pertanyaan yang sering diajukan, lihat SQL Server di Linux FAQ.

Berkontribusi pada dokumentasi SQL

Tahukah Anda bahwa Anda dapat mengedit konten SQL sendiri? Jika Anda melakukannya, Anda tidak hanya membantu meningkatkan dokumentasi kami, tetapi Anda juga dikreditkan sebagai kontributor ke halaman.

Untuk informasi selengkapnya, lihat Mengedit dokumentasi Microsoft Learn.