首页 > 解决方案 > 在 ubuntu 上配置 MSSQL Server - 无法打开或读取持久注册表:\SystemRoot\security.hiv

问题描述

我正在使用以下指南在我的 ubuntu 16.04 机器上安装 MSSQL 服务器 https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017

当我跑步时:

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

无论我选择哪种 SQL Server 版本,我都会收到以下错误:

    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.

我也发现了这个帖子,看起来这个人有类似的问题,但遗憾的是没有解决方案

有人知道如何解决我的问题吗?

谢谢

编辑:实施答案后,我得到了另一个错误:

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

为了清理我在日志文件夹中的混乱,我决定使用完全删除它

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

并重新运行安装程序,显然解决了我的最后一个问题,最后: 安装程序已成功完成。SQL Server 现在正在启动。

标签: sql-serverubuntu-16.04

解决方案


您将在以下位置找到更多信息

/var/opt/mssql/log

我的说道:

{
    "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"
}

所以我运行定位来查看“systemroot”的位置:

找到 security.hiv
/var/opt/mssql/.system/system/security.hiv

我不知道应该应用哪些权限,所以我只是将读写权限授予“其他人”。

然后与

lsa.hiv
licensing.hiv

重新运行

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

然后,sql-server 启动,其他人的权限又消失了。

顺便说一句,您可以在没有服务的情况下运行 sql-server,然后即使服务失败,它也可以工作:

/opt/mssql/bin/sqlservr

推荐阅读