Могу ли я запустить SQL Server в Ubuntu?

10

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

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

шут
источник

Ответы:

9

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

  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, что будет выглядеть идентично вашему клиентскому программному обеспечению.

Карлсон
источник
1
Ну, это ответ на мой вопрос, спасибо. Я не управляю базой данных, у нас есть целая куча программистов, я работаю на стороне клиента, и мы устанавливаем и сервер, и клиент. В настоящее время я виртуализирую Ubuntu на своей машине с Windows, чтобы выполнить кучу тестов, чтобы посмотреть, будет ли работать Ubuntu. С клиентом да. На сервере .... не очень хорошо, так как SQL никогда не будет работать в Linux. Спасибо за ваш ответ
Шут
1
@Karlson: Раньше это было правдой, но сейчас устарело, к концу ноября 2016 года.
WitchCraft
Этот URL, возможно, тогда выглядел как сказка. Docs.microsoft.com/en-us/sql/linux/…
Asim
5

ВНИМАНИЕ: EMBRACE - EXTEND - DROP   ?

Да, по состоянию на конец ноября 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-сервер во время загрузки:

systemctl enable mssql-server

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

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, вы можете сделать то же самое, набрав меньше с

ufw allow 1433/tcp

Смотри также firewall-persistence и this

Для Red Hat (firewalld):

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

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

SSMS


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

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 SQL-Server-2017 и сопоставляет порт 1433 в контейнере с портом 2017 на хосте, а также устанавливает лицензию «Разработчик», пароль sa - 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

колдовство
источник
См. Также askubuntu.com/questions/850957/…
WitchCraft
Может потребоваться создать символическую ссылку, чтобы начать sqlcmdработать после установки mssql-tools askubuntu.com/a/870928/8151
Нирошан