无法在 CentOS 7 上安装 MSSQL Server

无法在 CentOS 7 上安装 MSSQL Server

我一直在关注:

在 Red Hat Enterprise Linux 上安装 SQL Server

我在配置部分遇到了以下错误:

Setting system administrator (SA) account password...
sqlservr: Error: Directory [/var/system/] could not be created.  Errno [2]
Microsoft(R) SQL Server(R) setup failed with error code 1.
Please check the setup log in /var/opt/mssql/log/setup-20170117-150619.log
for more information.

显然,正如我所说,我检查了日志,但令我沮丧的是:

[root@vps113437 log]# ls -al
total 0
drwxr-xr-x. 2 mssql mssql 70 Jan 17 15:06 .
drwxrwx---. 5 mssql mssql 79 Jan 17 14:44 ..
-rw-r--r--. 1 mssql mssql  0 Jan 17 14:51 setup-20170117-145127.log
-rw-r--r--. 1 mssql mssql  0 Jan 17 15:06 setup-20170117-150619.log

日志文件是空的...

我不知道从哪里开始...有什么想法吗?

我尝试过的事情:

  • 创建 /var/system(错误没有改变)
  • 检查 /var/log/audit/audit.log (也没有条目)

答案1

我刚刚在托管于大型 OVH 服务器上的全新 Fedora 25 安装中修复了同样的问题。

事实证明,/var 中的符号链接已损坏:

[tom@aaa ~]# ls -la /var
     lrwxrwxrwx.  1 root root    15 Feb  4 12:38 puppet -> /ovh/puppet/var

删除此文件后一切都解决了:-)

这个错误让我很烦恼,后来我发现了这一点,于是我安装了 strace,抛开一切顾虑,通过失败的命令运行它:

[root@aaa ~]# strace /opt/mssql/bin/sqlservr
               [.....]
stat("/var//lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/var//adm", {st_mode=S_IFDIR|0755, st_size=6, ...}) = 0
stat("/var//puppet", 0x7ffe3b405a68)    = -1 ENOENT (No such file or directory)
close(3)                                = 0
futex(0x7f07eae42464, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f07ea8ed1a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, "sqlservr: Error: Directory [/var"..., 75sqlservr: Error: Directory [/var/system/] could not be created.  Errno [2]
) = 75
exit_group(1)                           = ?
+++ exited with 1 +++

-1 ENOENT (No such file or directory)让我起了疑心,于是我就找到了损坏的符号链接,将其删除,然后继续前进。

我希望这能帮助别人!:-)

答案2

我在 centos 7 vps 上遇到了同样的问题。我最终安装了 Docker 并运行了 ms sql docker 映像。

编辑:Thomas Buck 的解决方案也适用于我,我建议选择该选项。OVH 服务器上有一个奇怪的链接,不知何故阻止了 MS SQL 运行...

无论如何,如果你仍然想用 Docker 运行 MS SQL,这也很容易。要安装 Docker:

sudo yum -y install docker docker-registry
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo systemctl status docker.service

下载并运行 MS SQL docker 容器:

sudo docker pull microsoft/mssql-server-linux
sudo mkdir /var/opt/mssql
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourPassword' -p 1433:1433 -v /var/opt/mssql:/var/opt/mssql -d microsoft/mssql-server-linux

更多信息:CentOS 7 上的 Docker:https://www.liquidweb.com/kb/how-to-install-docker-on-centos-7/ MS SQL Docker 映像:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-docker

相关内容