GNU/Linux >> Linux の 問題 >  >> Linux

Linux 上の SQL Server が最初の起動時にハングアップし、エラーはなく、新規または更新された ErrorLog ファイルもありません

これは root として作業するときに注意を怠った場合に終わりました .

Linux 上の SQLCLR が、Windows の場合のように app.Config ファイルにアクセスできるかどうかを調査していました (残念ながら、そうではありません:Linux 上の SQL Server 2017 は、アプリ構成ファイルが存在する場合は無視し、存在しない場合はロックアップすることがあります)。 't (SQLCLR) ) であり、特定の状況下で SQL Server が完全にロックアップすることがありました。それが起こったとき、それを止める唯一の方法は kill -9 をすることでした sqlservr に .サービスを再開するときの 1 つで、/opt/mssql/bin/sqlservr を直接実行しました。 そして root として働いていたとき (したがって、プロセス自体は root によって所有されていました ).

sqlservr を実行してもすぐにエラーが発生したり、おかしな動作が発生することはありませんでした。 root として 、ただし、VM が再起動し、SQL Server が適切に起動しようとしたとき (つまり、mssql として実行中) ユーザー)、それは最初に行き詰まったときです.

sqlservr を実行することの直接的な結果は root として /var/opt/mssql/log/errorlog ファイル (および SQL Server の起動時に作成されるその他のファイル) は root が所有していました (理にかなっています)。

そして、これらのファイルが root によって所有されていることの直接的な結果 プロセスが適切に開始されたときです( mssql など) )、次に mssql ユーザーには、ファイル名を .1 で終わるように変更する権限がありません (そして、デフォルト トレースなど、その他のファイルで発生する必要があるものはすべて)。ただし、権限エラーが発生するのではなく、永遠にハングアップします。

主な修正は、単純に次を root として実行することです ( mssql として実行しようとはしていません )。次の両方のコマンドの場合、sudo 現在 root として機能していない場合にのみ必要です それに続くコマンドを as 実行するので root (または -u username を指定した場合は他のユーザー )、root の入力を求められた後 パスワード。

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

二次的な修正 (これが再び起こらないようにするため) は、SQL Server を適切に起動することです;-):

sudo systemctl start mssql-server

Linux
  1. Linux –起動時にルートファイルシステムのチェック(およびオプションで修正)を強制するにはどうすればよいですか?

  2. Linux.htaccessのヒントとコツ

  3. ファイルを作成、コピー、移動、および削除するためのLinuxファイル管理コマンド

  1. 「fsck」と「tune2fs」を使用した Linux ファイルシステムの保守

  2. Linux でサポートおよび推奨されるファイル システム

  3. 新しい Linux マシンのルート ファイルシステムとして ZFS を使用しますか?

  1. Linuxでのプロセス間通信:ソケットとシグナル

  2. Linuxのルートでもファイルとディレクトリを削除できないようにする方法

  3. Linux ユーザーとパスワードを新しいサーバーにコピーする