GNU/Linux >> Belajar Linux >  >> Linux

SQL Server di Linux hang saat startup awal, tidak ada error, dan tidak ada file ErrorLog baru/yang diperbarui

Ini berakhir sebagai kasus ketidakhati-hatian saat bekerja sebagai root .

Saya telah meneliti apakah SQLCLR di Linux akan memiliki akses ke file app.Config seperti di Windows (sayangnya, tidak:SQL Server 2017 di Linux mengabaikan file konfigurasi aplikasi jika ada, atau terkadang terkunci jika tidak 't (SQLCLR) ) dan dalam keadaan tertentu SQL Server akan terkunci sepenuhnya. Ketika itu terjadi, satu-satunya cara untuk menghentikannya adalah dengan melakukan kill -9 pada sqlservr . Suatu kali saya memulai layanan lagi, saya melakukannya dengan langsung mengeksekusi /opt/mssql/bin/sqlservr dan saat saya bekerja sebagai root (maka proses itu sendiri dimiliki oleh root ).

Tidak ada kesalahan langsung atau perilaku aneh akibat menjalankan sqlservr sebagai root , TETAPI ketika VM dimulai ulang dan SQL Server berusaha untuk memulai dengan benar (yaitu berjalan sebagai mssql pengguna), saat itulah macet di awal.

Saya menemukan bahwa konsekuensi langsung dari menjalankan sqlservr sebagai root apakah itu /var/opt/mssql/log/errorlog file (dan beberapa lainnya yang dibuat saat SQL Server dimulai) dimiliki oleh root (masuk akal).

Dan, konsekuensi langsung dari file-file tersebut dimiliki oleh root adalah ketika proses dimulai dengan benar (seperti mssql ), lalu mssql pengguna tidak memiliki izin untuk mengubah nama file menjadi berakhiran .1 (dan apa pun yang perlu terjadi dengan file lain, seperti jejak default, dll). Namun, alih-alih mendapatkan kesalahan izin, itu malah hang selamanya.

Perbaikan utama adalah menjalankan yang berikut ini sebagai root (Saya belum mencoba menjalankannya sebagai mssql ). Untuk kedua perintah berikut, sudo hanya diperlukan saat tidak bertindak sebagai root karena akan menjalankan perintah yang mengikutinya as root (atau pengguna lain jika Anda menentukan -u username ), setelah diminta memasukkan root sandi.

sudo chown -R  mssql:mssql /var/opt/mssql

Perbaikan sekunder (untuk memastikan hal ini tidak terjadi lagi), adalah memulai SQL Server dengan benar;-):

sudo systemctl start mssql-server

Linux
  1. Cara Menghapus File Root Mail (Kotak Surat) di Linux

  2. Cara Mengonfigurasi Server SAMBA Dan Mentransfer File Antara Linux &Windows

  3. Periksa izin file Linux dengan ls

  1. Linux - Bagaimana Cara Memaksa Pemeriksaan Sistem File Root (dan Opsional A Fix) Saat Boot?

  2. Sistem File yang Didukung dan Direkomendasikan di Linux

  3. ZFS Sebagai Sistem File Root Pada Mesin Linux Baru?

  1. Tip dan trik .htaccess Linux

  2. Perintah manajemen file Linux untuk membuat, menyalin, memindahkan, dan menghapus file

  3. Memelihara sistem file Linux menggunakan "fsck" dan "tune2fs"