ПРЕДУПРЕЖДЕНИЕ:ОБНЯТЬ - РАСТЯНУТЬ - БРОСИТЬ  ?

ПРЕДУПРЕЖДЕНИЕ:ОБНЯТЬ - РАСТЯНУТЬ - БРОСИТЬ  ?

Моя компания разрабатывает программное обеспечение с двумя сторонами: клиент и сервер. Я установил Microsoft SQL Server на Windows и запускаю клиентскую сторону на Ubuntu с некоторой конфигурацией.

Но мне интересно: есть ли способ запустить Ubuntu в качестве сервера и установить на нем SQL Server?

решение1

Вы, конечно, можете попробовать подход, который я опишу ниже, но я не знаю, пробовал ли кто-нибудь его успешно.

  1. Установите программное обеспечение виртуализации на свой компьютер Ubuntu (VMWare, Xen, VirtualBox).
  2. Установите Microsoft Windows Server на виртуальную машину.
  3. Установите MS SQL Server на недавно установленный Windows Server.

Я не знаю, сработает ли какой-либо другой способ, но люди могут меня поправить, насколько я помню, MS SQL Server на самом деле полагается на лицензирование для Microsoft Windows Server. Вдобавок к этому SQLServer — довольно большой пожиратель ресурсов, поэтому обычно организации пытаются отделить его от запуска с любыми другими приложениями на его собственном кластере или сервере.

Один момент, который я бы задал, это почему бы не попробовать Sybase в качестве бэкэнда? Подключение Linux к SQLServer и Sybase может проходить через FreeTDS, что будет выглядеть идентично вашему клиентскому программному обеспечению.

решение2

ПРЕДУПРЕЖДЕНИЕ:ОБНЯТЬ - РАСТЯНУТЬ - БРОСИТЬ  ?

Да, по состоянию на конец ноября 2016 года и согласноdocs.microsoft.com, вы можете установить общедоступную предварительную версию sql-server vNext CTP1 на Ubuntu 16.04 (не работает на 14.04, так как пакет OpenSSL устарел, и не работает на 19.04, так как пакет OpenSSL слишком новый):

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/sqlservr-setup

или новее

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

Чтобы удалить его

sudo apt-get remove --purge mssql-server

Чтобы удалить сгенерированные базы данных

sudo rm -rf /var/opt/mssql/

Если вы хотите проверить, работает ли это или нет, не забудьте отключить брандмауэр.

iptables -F
iptables -P INPUT ACCEPT  

Вы можете запустить SQL-сервер с помощью:

systemctl start mssql-server

Вы можете остановить SQL-сервер с помощью:

systemctl stop mssql-server

Чтобы увидеть его статус:

systemctl status mssql-server

Для запуска sql-server во время загрузки:

systemctl enable mssql-server

Чтобы отключить запуск SQL-сервера во время загрузки:

systemctl disable mssql-server

И если вы также хотитеинструменты командной строки

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update 
sudo apt-get install mssql-tools

Чтобы проверить это

sqlcmd -S localhost -U SA -P 'YourPasswordHere'
CREATE DATABASE contoso
exit

И чтобы постоянно открыть порт 1433 (sql-server default-port)

iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

или если вы используете ufw, вы можете сделать то же самое, набрав less с помощью

ufw allow 1433/tcp

Смотрите такжебрандмауэр-устойчивостьиэтот

Для Red Hat (firewalld):

firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload

Если вы не хотите работать с инструментами командной строки, вы можете подключиться к SSMS с ноутбука под управлением Windows.

ССМС


Если вы не можете использовать sql-server в своем дистрибутиве (openssl слишком старый / openssl слишком новый / дистрибутив не поддерживается), то вы всегда можете использовать образ docker:

sudo apt-get install docker.io 
docker pull mcr.microsoft.com/mssql/server:2017-latest

docker run -d -p 2017:1433 --name mssql_2017 -e MSSQL_SA_PASSWORD =TOP_SECRET -e ACCEPT_EULA=Y  -e MSSQL_PID="Developer" -v /var/opt/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

который устанавливает docker, загружает последний образ docker-linux-image SQL-Server-2017 из интернета, сопоставляет порт 1433 в контейнере с портом 2017 на хосте, устанавливает лицензию на "Developer", sa-Password на TOP_SECRET, а также сопоставляет /var/opt/mssql в контейнере с /var/opt/mssql на хосте. Возможно, вам придется создать эту папку с помощью mkdir -p /var/opt/mssql.

С этого момента вы можете запускать контейнер с помощью docker start mssql_2017и останавливать его с помощью docker stop mssql_2017.

Для графической работы с SQL-сервером на Linux можно использоватьAzureDataStudio, скачатьdeb-пакетсо страницы github и установите его с помощьюsudo dpkg -i azuredatastudio-linux-1.12.2.deb

Связанный контент