Моя компания разрабатывает программное обеспечение с двумя сторонами: клиент и сервер. Я установил Microsoft SQL Server на Windows и запускаю клиентскую сторону на Ubuntu с некоторой конфигурацией.
Но мне интересно: есть ли способ запустить Ubuntu в качестве сервера и установить на нем SQL Server?
решение1
Вы, конечно, можете попробовать подход, который я опишу ниже, но я не знаю, пробовал ли кто-нибудь его успешно.
- Установите программное обеспечение виртуализации на свой компьютер Ubuntu (VMWare, Xen, VirtualBox).
- Установите Microsoft Windows Server на виртуальную машину.
- Установите 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