경고:포용 - 확장 - 삭제  ?

경고:포용 - 확장 - 삭제  ?

우리 회사는 클라이언트와 서버라는 두 가지 측면을 고려하여 소프트웨어를 개발합니다. Windows에 Microsoft SQL Server를 설치했고 일부 구성을 사용하여 Ubuntu에서 클라이언트 측을 실행하고 있습니다.

하지만 궁금합니다. 대신 Ubuntu를 서버로 실행하고 여기에 SQL Server를 설치하는 방법이 있습니까?

답변1

아래에 설명할 접근 방식을 확실히 시도해 볼 수 있지만 성공적으로 시도한 사람이 있는지는 모르겠습니다.

  1. Ubuntu 시스템(VMWare, Xen, VirtualBox)에 가상화 소프트웨어를 설치합니다.
  2. 가상 머신에 Microsoft Windows Server를 설치합니다.
  3. 새로 설치된 Windows Server에 MS SQL Server를 설치합니다.

다른 방법이 효과가 있을지는 모르겠지만 사람들이 실제로 Microsoft Windows Server 라이센스에 의존한다는 것을 기억할 수 있는 MS SQL Server를 수정할 수 있습니다. 게다가 SQLServer는 매우 나쁜 리소스를 많이 사용하므로 일반적으로 조직에서는 자체 클러스터나 서버에서 다른 응용 프로그램과 함께 실행되지 않도록 분리하려고 합니다.

제가 궁금한 점 중 하나는 Sybase를 백엔드로 사용해 보는 것이 어떨까요? Linux에서 SQLServer 및 Sybase로의 연결은 FreeTDS클라이언트 소프트웨어와 동일하게 보일 수 있습니다.

답변2

경고:포용 - 확장 - 삭제  ?

예, 2016년 11월 말 기준입니다.docs.microsoft.com, Ubuntu 16.04에 sql-server vNext CTP1의 공개 미리 보기를 설치할 수 있습니다(OpenSSL 패키지가 오래되었기 때문에 14.04에서는 작동하지 않고 OpenSSL 패키지가 너무 새롭기 때문에 19.04에서는 작동하지 않습니다).

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-Server를 시작할 수 있습니다.

systemctl start mssql-server

다음을 사용하여 SQL-Server를 중지할 수 있습니다.

systemctl stop mssql-server

상태를 보려면:

systemctl status mssql-server

부팅 시 sql-server를 시작하려면:

systemctl enable mssql-server

부팅 시 SQL-Server-start를 비활성화하려면 다음을 수행하십시오.

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 기본 포트)을 영구적으로 열려면

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(방화벽)의 경우:

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

명령줄 도구를 사용하지 않으려면 Windows 노트북에서 SSMS에 연결할 수 있습니다.

SSMS


배포판에서 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를 설치하고, 인터넷에서 최신 SQL-Server-2017 docker-linux-image를 가져오고, 컨테이너의 포트 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.

Linux에서 sql-server를 그래픽 방식으로 작업하려면 다음을 사용할 수 있습니다.AzureDataStudio, 다운로드deb 패키지github 페이지에서 다음과 같이 설치하세요.sudo dpkg -i azuredatastudio-linux-1.12.2.deb

관련 정보