Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di Linux
Artikel ini menjelaskan cara memecahkan masalah SQL Server yang berjalan di Linux atau dalam kontainer Linux. Saat memecahkan masalah SQL Server di Linux, ingatlah untuk meninjau fitur yang didukung dan batasan yang diketahui:
- Catatan rilis untuk SQL Server 2025 di Linux
- Catatan rilis untuk SQL Server 2022 di Linux
- Catatan rilis untuk SQL Server 2019 di Linux
- Catatan rilis untuk SQL Server 2017 di Linux
Untuk jawaban atas pertanyaan yang sering diajukan, lihat TANYA JAWAB UMUM SQL Server di Linux.
Memecahkan masalah kegagalan koneksi
Jika Anda mengalami kesulitan menyambungkan ke instans Linux SQL Server Anda, ada beberapa hal yang perlu diperiksa.
Jika Anda tidak dapat tersambung secara lokal menggunakan
localhost, coba gunakan alamat IP 127.0.0.1 sebagai gantinya. Ada kemungkinan bahwalocalhosttidak dipetakan dengan benar ke alamat ini.Verifikasi bahwa nama server atau alamat IP dapat dijangkau dari komputer klien Anda.
Untuk menemukan alamat IP komputer Ubuntu, Anda dapat menjalankan
ifconfigperintah seperti dalam contoh berikut:sudo ifconfig eth0 | grep 'inet addr'Untuk Red Hat, Anda dapat menggunakan
ip addrperintah seperti dalam contoh berikut:sudo ip addr show eth0 | grep "inet"Petunjuk / Saran
Satu pengecualian untuk teknik ini berkaitan dengan Azure VM. Untuk Azure VM, temukan IP publik untuk VM di portal Microsoft Azure.
Jika berlaku, periksa apakah Anda membuka port SQL Server (default 1433) pada firewall.
Untuk Azure VM, periksa apakah Anda memiliki aturan grup keamanan jaringan untuk port SQL Server default.
Verifikasi bahwa nama pengguna dan kata sandi tidak berisi kesalahan ketik, spasi tambahan, atau casing yang salah.
Cobalah untuk secara eksplisit mengatur protokol dan nomor port dengan nama server seperti contoh berikut:
tcp:servername,1433.Masalah konektivitas jaringan juga dapat menyebabkan kesalahan koneksi dan batas waktu. Setelah memverifikasi informasi koneksi dan konektivitas jaringan Anda, coba koneksi lagi.
Mengelola layanan SQL Server
Bagian berikut menunjukkan cara mengelola eksekusi kontainer Linux SQL Server. Untuk mengelola layanan untuk Linux, lihat Memulai, menghentikan, dan memulai ulang layanan SQL Server di Linux.
Mengelola eksekusi kontainer Linux SQL Server
Anda bisa mendapatkan status dan ID kontainer dari kontainer Linux SQL Server terbaru yang dibuat dengan menjalankan perintah berikut (ID berada di bawah CONTAINER ID kolom):
sudo docker ps -l
Anda dapat menghentikan atau memulai ulang layanan SQL Server sesuai kebutuhan menggunakan perintah berikut:
sudo docker stop <container ID>
sudo docker restart <container ID>
Petunjuk / Saran
Untuk tips pemecahan masalah selengkapnya untuk kontainer Linux, lihat Memecahkan Masalah kontainer Docker SQL Server.
Mengakses file log
Mesin Database SQL Server mencatat ke /var/opt/mssql/log/errorlog file di penginstalan Linux dan kontainer. Anda harus berada dalam mode superuser untuk menelusuri direktori ini.
Penginstal mencatat ke: /var/opt/mssql/setup-<time stamp representing time of install> Anda dapat menjelajahi file errorlog dengan alat yang kompatibel dengan UTF-16 seperti vim atau cat sebagai berikut:
sudo cat errorlog
Jika mau, Anda juga dapat mengonversi file ke UTF-8 untuk membacanya dengan lebih atau kurang dengan perintah berikut:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Aktivitas yang Diperluas
Peristiwa yang diperluas dapat dikueri melalui perintah SQL. Untuk informasi selengkapnya, lihat extended events.
file dump saat sistem crash
Cari cadangan di direktori log di Linux. Periksa di bawah /var/opt/mssql/log direktori untuk dump Linux Core (.tar.gz2 ekstensi) atau minidump SQL (.mdmp ekstensi).
Misalnya, untuk melihat cadangan inti:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Untuk cadangan SQL, gunakan skrip ini:
sudo ls /var/opt/mssql/log | grep .mdmp
Mulai SQL Server dalam konfigurasi minimal atau dalam mode pengguna tunggal
Memulai SQL Server dalam mode konfigurasi minimal
Mode ini berguna jika pengaturan nilai konfigurasi (misalnya, memori yang terlalu berkomitmen) mencegah server dimulai.
sudo -u mssql /opt/mssql/bin/sqlservr -f
Memulai SQL Server dalam mode pengguna tunggal
Terkadang Anda mungkin harus memulai instans SQL Server dalam mode pengguna tunggal dengan menggunakan opsi -mstartup . Untuk informasi selengkapnya, lihat parameter startup. Misalnya, Anda mungkin ingin mengubah opsi konfigurasi server atau memulihkan database yang rusak master atau database sistem lainnya.
Misalnya, gunakan skrip berikut untuk memulai SQL Server dalam mode pengguna tunggal:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Skrip ini memulai SQL Server dalam mode pengguna tunggal dengan sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Anda harus selalu memulai SQL Server di Linux dengan mssql pengguna untuk mencegah masalah startup di masa mendatang. Misalnya: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
Jika Anda tidak sengaja memulai SQL Server dengan pengguna lain, Anda harus mengubah kepemilikan file database SQL Server kembali ke mssql pengguna sebelum Anda memulai SQL Server dengan systemd. Misalnya, untuk mengubah kepemilikan semua file database pada /var/opt/mssqlmssql pengguna, jalankan perintah berikut:
chown -R mssql:mssql /var/opt/mssql/
Membangun kembali database sistem
Sebagai upaya terakhir, Anda dapat memilih untuk membangun master kembali database dan model kembali ke versi default.
Peringatan
Proses ini berbahaya, karena Anda dapat menghapus semua data sistem SQL Server yang telah Anda konfigurasi, termasuk informasi tentang database pengguna Anda (tetapi bukan database pengguna itu sendiri).
Anda perlu melampirkan database pengguna ke instans setelahnya. Ini juga menghapus informasi lain yang disimpan dalam database sistem, termasuk:
- informasi kunci master database (DMK)
- sertifikat apa pun yang dimuat di
master - kata sandi untuk
saakun - informasi terkait pekerjaan dari
msdb - Informasi Email Database dari
msdb - Opsi
sp_configure
Anda tidak dapat menghubungkan kembali database pengguna apa pun yang dienkripsi dengan enkripsi data transparan (TDE) kecuali sertifikat dan kunci privat Anda juga dicadangkan.
Hanya gunakan langkah-langkah ini jika Anda memahami implikasinya.
Hentikan Mesin Database SQL Server
sudo systemctl stop mssql-serverJalankan
sqlservrdenganforce-setupparameter:sudo -u mssql /opt/mssql/bin/sqlservr --force-setupAnda harus selalu memulai SQL Server di Linux dengan
mssqlpengguna untuk mencegah masalah startup di masa mendatang.Setelah Anda melihat pesan "Pemulihan selesai", tekan Ctrl+C. Ini mematikan SQL Server.
Mengonfigurasi ulang
sakata sandi.sudo /opt/mssql/bin/mssql-conf set-sa-passwordPerhatian
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.
Mulai SQL Server dan konfigurasi ulang server, termasuk memulihkan atau memasang ulang database pengguna apa pun.
sudo systemctl start mssql-server
Meningkatkan Performa
Banyak faktor yang memengaruhi performa, termasuk desain database, perangkat keras, dan tuntutan beban kerja. Jika Anda ingin meningkatkan performa, mulailah dengan meninjau praktik terbaik dalam artikel, Praktik terbaik performa dan panduan konfigurasi untuk SQL Server di Linux. Kemudian jelajahi beberapa alat yang tersedia untuk memecahkan masalah performa.
- Memantau kinerja menggunakan Query Store
- Tampilan manajemen dinamis sistem
- Dasbor Performa di SQL Server Management Studio
Masalah umum
Anda tidak dapat tersambung ke instans SQL Server jarak jauh Anda.
Lihat bagian pemecahan masalah artikel, Sambungkan ke SQL Server di Linux.
Anda mengalami pesan kesalahan:
ERROR: Hostname must be 15 characters or less.Ini adalah masalah yang diketahui yang terjadi setiap kali nama komputer yang mencoba menginstal paket SQL Server lebih panjang dari 15 karakter. Saat ini tidak ada solusi selain mengubah nama komputer. Anda dapat melakukan ini dengan mengedit dan
/etc/hostname/etc/hosts, mengubah nama host, menyimpan setiap file, dan memulai ulang komputer.Kata sandi administrator sistem (
sa) harus diatur ulang, yang menghentikan layanan SQL Server untuk sementara.Jika Anda lupa
sakata sandi atau perlu mengatur ulang karena alasan lain, ikuti langkah-langkah ini.Masuk ke terminal host, jalankan perintah berikut dan ikuti perintah untuk mengatur ulang
sakata sandi:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setupPerhatian
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.
Karakter khusus dalam kata sandi dapat menyebabkan kesalahan atau kegagalan masuk.
Jika Anda menggunakan beberapa karakter dalam kata sandi SQL Server, Anda mungkin perlu melepaskannya dengan garis miring terbelakang saat Anda menggunakannya di baris perintah Linux. Misalnya, Anda harus keluar dari tanda dolar (
$) kapan saja Anda menggunakannya dalam perintah terminal/skrip shell:Tidak berfungsi:
sudo sqlcmd -S myserver -U sa -P Test$$Apakah berfungsi:
sqlcmd -S myserver -U sa -P Test\$\$
Konten terkait
Dapatkan bantuan
- Ide untuk SQL: Apakah Anda memiliki saran untuk meningkatkan SQL Server?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (tag sql-server): Ajukan pertanyaan SQL Server
- Stack Overflow (tag sql-server): Jawaban atas pertanyaan pengembangan SQL
- Syarat dan Informasi Lisensi Microsoft SQL Server
- Opsi dukungan untuk pengguna bisnis
- Bantuan dan umpan balik SQL Server tambahan
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.