Невозможно установить MSSQL Server на CentOS 7
Я следовал вместе с:
Установите SQL Server в Red Hat Enterprise Linux
и я столкнулся со следующей ошибкой в части конфигурации:
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 (также нет записей)
2 ответа
Я только что исправил эту же проблему в новой установке Fedora 25, размещенной на коротком OVH-сервере.
Оказывается, у меня была неработающая символическая ссылка в /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)
сделал меня подозрительным, вот как я нашел сломанную символическую ссылку, удалил ее и пошел дальше.
Я надеюсь, что это помогает кому-то еще!:-)
У меня была такая же проблема на моем Centos 7 VPS. В итоге я установил Docker и запустил образ MS SQL.
РЕДАКТИРОВАТЬ: решение Томаса Бака также работает для меня, и я бы порекомендовал пойти на этот вариант. На серверах OVH есть странная ссылка, которая как-то мешает запуску MS SQL...
В любом случае, если вы все еще хотите запустить MS SQL с Docker, это тоже довольно просто. Чтобы установить Docker:
sudo yum -y install docker docker-registry
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo systemctl status docker.service
Загрузите и запустите Docker-контейнер MS SQL:
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
Дополнительная информация: Docker на CentOS 7: 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