Configuring MSSQL Server on ubuntu - Cannot open or read the persistent registry: \SystemRoot\security.hiv

5

I'm using the following guide to install MSSQL server on my ubuntu 16.04 machine https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017

when I'm running:

sudo /opt/mssql/bin/mssql-conf setup

no matter what kind of SQL Server edition I choose, I'm getting the following error:

    Confirm the SQL Server system administrator password: 
Configuring SQL Server...

This program has encountered a fatal error and cannot continue running at Mon Apr  1 16:06:07 2019
The following diagnostic information is available:

       Reason: 0x00000007
      Message: Cannot open or read the persistent registry: \SystemRoot\security.hiv.
      Process: 19600 - sqlservr
       Thread: 19604 (application thread 0x4)
  Instance Id: 7ebfcf27-db60-460d-afd3-6d852b70069e
     Crash Id: d99ba388-d323-43f3-b758-e116f42bb2e8
  Build stamp: 70437f6583b8ef39b1ef70539ef84690980315dc7a4436c9c40015f28610e4aa
 Distribution: Ubuntu 16.04.6 LTS
   Processors: 8
 Total Memory: 16673366016 bytes
    Timestamp: Mon Apr  1 16:06:07 2019

Ubuntu 16.04.6 LTS
Capturing core dump and information to /var/opt/mssql/log...
Hint: You are currently not seeing messages from other users and the system.
      Users in the 'systemd-journal' group can see all messages. Pass -q to
      turn off this notice.
No journal files were opened due to insufficient permissions.
Hint: You are currently not seeing messages from other users and the system.
      Users in the 'systemd-journal' group can see all messages. Pass -q to
      turn off this notice.
No journal files were opened due to insufficient permissions.
/usr/bin/tail: cannot open '/var/log/syslog' for reading: Permission denied
Attempting to capture a dump with paldumper
Captured a dump with paldumper
Core dump and information are being compressed in the background. When
complete, they can be found in the following location:
  /var/opt/mssql/log/core.sqlservr.04_01_2019_16_06_07.19600.tbz2
Initial setup of Microsoft SQL Server failed. Please consult the ERRORLOG
in /var/opt/mssql/log for more information.

also I found this post, which look like this guy had a similar problem, but sadly no solution

does any one knows how to solve my problem?

Thank you

Edit: after implementing the answer I got another error:

Confirm the SQL Server system administrator password: 
Configuring SQL Server...

Initial setup of Microsoft SQL Server failed. Please consult the ERRORLOG in /var/opt/mssql/log for more information

To make some clean in the mess that I had in the log folder I decided to delete it completely using

sudo rm -rf /var/opt/mssql/log

and re-run the setup, Apparently that solved my last problem and finally: Setup has completed successfully. SQL Server is now starting.

sql-server
ubuntu-16.04
asked on Stack Overflow Apr 1, 2019 by Or Yaacov • edited Apr 24, 2019 by Or Yaacov

1 Answer

3

You'll find further information in

/var/opt/mssql/log

Mine said:

{
    "reason": "0x00000007",
    "processName": "sqlservr",
    "pid": "5773",
    "instanceId": "d7df749c-50e6-4f3b-b894-2aa7c743f33d",
    "crashId": "281e772a-5946-4349-aa9e-671cd0a3772c",
    "threadId": "5777",
    "libosThreadId": "0x4",
    "buildStamp": "70437f6583b8ef39b1ef70539ef84690980315dc7a4436c9c40015f28610e4aa",
    "message": "Cannot open or read the persistent registry: \\SystemRoot\\lsa.hiv.",
    "last_errno": "13",
    "last_errno_text": "Permission denied",
    "distribution": "Ubuntu 16.04.6 LTS",
    "processors": "4",
    "total_memory": "16732037120",
    "timestamp": "Fri Apr 12 22:02:44 2019"
}

So I ran locate to see where "systemroot" is located:

locate security.hiv
/var/opt/mssql/.system/system/security.hiv

I didn't know which permissions should be applied, so I just gave read&write to "others".

then the same with

lsa.hiv
licensing.hiv

re-run

sudo /opt/mssql/bin/mssql-conf setup

and then, sql-server starts, plus the permissions for others are gone again.

By the way, you can run sql-server without service, then it works even if the service fails:

/opt/mssql/bin/sqlservr
answered on Stack Overflow Apr 12, 2019 by Stefan Steiger

User contributions licensed under CC BY-SA 3.0