ubuntu 환경에 mssql 설치하기



안녕하세요! 오늘은 ubuntu 환경에 mssql 을 설치하는 과정을 포스팅 해 보겠습니다.
학교에서 mssql 을 설치하는 과정을 담아오라는 과제가 있어서 같이 하는 거기도 하지만
회사에서도 사용하고 있기 때문에 겸사겸사 포스팅을 하게 되었습니다. 

저 같은 경우에는 평가판으로 진행하겠습니다. 
설치 과정은 거의 유사한 것으로 알고 있습니다. 

인증 과정이나 결제 과정만 조금 다르구요.


■ 설치과정 (                처리가 된 부분은 생략하세요. 윈도우 환경에서만 사용할 수 있습니다.) 

- 먼저 mssql 을 구글에 입력하고 SQL Server 2016 | Microsoft  라고 검색된 부분을 클릭합니다. 




- 그 다음 다운로드 탭에 들어갑니다. 

- 해당 탭에서 무료 평가판 평가 버튼을 눌러줍니다. 



- 그 다음에는 새로 열린 양식 창에 정보를 입력하고 확인 버튼을 눌러줍니다. 
정보 입력 창에 회사 이름이라고 나와있는데, 저는 제 전화번호와 제 메일 같은 정보를 넣어 주었습니다. 





- 하단에 있는 Ubuntu Linux 16.04 기반 설치를 누릅니다 ( 17.10.02 기준 )




- 그러면 아래의 링크로 이동하게 됩니다. 
해당 링크에 있는 내용을 다소 의역하여 같이 설치를 해보도록 하겠습니다. 
영어 : https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu
한글 : https://docs.microsoft.com/ko-kr/sql/linux/quickstart-install-connect-ubuntu






Install SQL Server and create a database on Ubuntu 
[우분투에 SQL 서버를 설치하고 데이터 베이스를 만들기]

THIS TOPIC APPLIES TO: SQL Server on Linux    [ 이 주제는 리눅스에 최적화 되어 있습니다 ] 

In this quick start tutorial, you first install SQL Server 2017 RC2 on Ubuntu 16.04. Then connect with sqlcmd to create your first database and run queries.
[ 이 빠른 튜토리얼에서, 당신은 먼저 우분투 16.04 에 SQL Server 2017 RC2 를 설치합니다.
그 다음, sqlcmd 를 이용하여 데이터베이스에 접근한 다음 쿼리를 실행합니다.    ]

Tip

This tutorial requires user input and an internet connection. If you are interested in the unattended or offline installation procedures, see Installation guidance for SQL Server on Linux.

이 튜토리얼은 유저 입력과 인터넷 연결을 요구합니다. 만약 당신이 지켜보지 않고 오프라인 설치 환경이라고 한다면, 리눅스 환경에서 SQL 서버 설치하기 가이드를 보세요!! ( 가도 특별히 gui 로 간단하게 설치한다던가 하는 환경은 없었음 ) 



Prerequisites [ 사전에 필요한 것  ]


You must have a Ubuntu machine with at least 3.25 GB of memory. [ 우분투에 최소한 3.25GB 의 메모리가 필요합니다.  ]

To install Ubuntu on your own machine, go to http://www.ubuntu.com/download/server. You can also create Ubuntu virtual machines in Azure. See Create and Manage Linux VMs with the Azure CLI.
[ 우분투를 설치하기 위해서는 
 http://www.ubuntu.com/download/server 해당 링크로 들어가야 합니다.
또한, 우분투 가상 머신을 Azure 에 설치할 수 있습니다. Azure CLI 에서 리눅스 VMs 를 생성하고 관리하는 링크를 확인하세요 ]


For other system requirements, see System requirements for SQL Server on Linux.
[우리의 시스템이 요구하는 바는, 리눅스 에서 SQL 서버 요구 사항에서 확인하세요. ]







Install SQL Server [ SQL 서버 설치하기 ] 

To configure SQL Server on Ubuntu, run the following commands in a terminal to install the mssql-serverpackage.
[ 우분투에 SQL 서버 환경 구축을 위해서, 터미널에서 mssql-serverpackage 를 설치하기 위해서 아래의 명령어를 입력하세요. ] 

  1. Import the public repository GPG keys:  [ public repository 에서 GPG 키를 가져옵니다. ]

    bash
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

        


설치 중에 비밀번호를 입력할 수 있게 되면, 비밀번호를 입력해 주면 됩니다. 




  1. Register the Microsoft SQL Server Ubuntu repository: [ 우분투 저장소에 MSSQL 을 등록합니다. ] 

    bash
    sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list)"





  1. Run the following commands to install SQL Server: [ SQL 서버를 설치하기 위해서 명령어를 입력합니다. ]

    bash
    sudo apt-get updatesudo apt-get install -y mssql-server

 

  


  1. After the package installation finishes, run mssql-conf setup and follow the prompts to set the SA password and choose your edition.
    [ 모든 설치과정이 완료되면, mssql-conf setup 을 실행하고, SA 패스워드를 설정하고, 당신의 버전을 고르기 위해서 안내를 따르세요. ] 

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

    Make sure to specify a strong password for the SA account (Minimum length 8 characters, including uppercase and lowercase letters, base 10 digits and/or non-alphanumeric symbols).


    SA 계정의 보안 강화를 위해서 강력한 비밀번호를 설정하세요 ( 최소 8글자이면서, 대문자 소문자를 포함하고, 숫자와 특수문자도 사용하는 암호)

    Tip

    When installing RC2, no purchased licenses are required to try any of the editions. Because it is a release candidate, the following message appears regardless of the edition you select:

    This is an evaluation version. There are [175] days left in the evaluation period.

    This message does not reflect the edition you selected. It relates to the preview period for RC2.


    RC2 를 설치할 때, 모든 에디션을 사용하기 위해 구매 한 라이센스가 필요하지 않습니다. 릴리스 후보이기 때문에 선택한 버전에 관계없이 다음 메시지가 나타납니다.    
                   이 버전은 평가판입니다. 만료일 까지 [ 175 ] 일 이 남았습니다. 
    이 메세지는 당신이 선택한 버전과 관련 없습니다. 오직 RC2 의 preview 기간과 관련있습니다. 



SQL Server의 버전을 선택합니다.
  1) Evaluation(무료, 프로덕션 사용권 없음, 180일 제한)
  2) 개발자(무료, 프로덕션 사용권 없음)
  3) Express(무료)
  4) 웹(유료)
  5) Standard(유료)
  6) Enterprise(유료)
  7) 소매 채널을 통해 라이선스를 구했으며 입력할 제품 키가 있습니다.

아래의 그림을 참고해서 다운로드 받으면 될 것 같습니다. 
저 같은 경우에는 Evaluation 을 설치하겠습니다. 




그 다음으로는 언어를 선택해줍니다. 



그 다음으로는 비밀번호 설정입니다. 조건을 만족하지 못하면 아래와 같은 메세지가 나타납니다. 

지정한 암호는 복잡하지 않기 때문에 SQL Server 암호 정책 요구 사항을 충족하지 않습니다. 암호는 길이가 8자 이상이어야 하며 4가지 문자 집합인 영문 대문자, 영문 소문자, 숫자 및 기호 중 3가지를 포함해야 합니다.


암호를 입력해주니 113 일이 남았다고 하는군요 
원래 180 일이 남아야 할 텐데 이유는 잘 모르겠습니다. 

다만 학기 까지는 90일 정도이니 이상없이 작동할 수 있을 것 같습니다. 



위와 같이 설치가 완료되었다고 합니다. 


  1. Once the configuration is done, verify that the service is running:
    [ 설치 과정이 완료되면, 작동하고 있는지 확인해야합니다.  ]

    bash
    systemctl status mssql-server
  2. If you plan to connect remotely, you might also need to open the SQL Server TCP port (default 1433) on your firewall.

    [ 만약 원격으로 접속하고 싶으면, 방화벽 설정에서 TCP 포트를 사용하여 ( 기본 설정 1433 번  )  여는 것이 필요할 것입니다. ]

At this point, SQL Server is running on your Ubuntu machine and is ready to use!
[ 이 시점에서 , SQL 서버가 우분투에서 돌아가고 있고, 사용할 준비가 다 된것입니다!! ]


명령어를 입력하면 아래와 같이 설치가 잘 되었다는 것을 확인할 수 있습니다. 





그런데 한글 설치 안내를 뒤늦게 찾아버리고 말았네요. 
아래부터는 한글 설치 안내를 참고하겠습니다. 

https://docs.microsoft.com/ko-kr/sql/linux/quickstart-install-connect-ubuntu


SQL Server 명령줄 도구를 설치 합니다.

데이터베이스를 만들려면 SQL Server에서 TRANSACT-SQL 문을 실행할 수 있는 도구와 연결 해야 합니다. SQL Server 명령줄 도구를 설치 하는 다음 단계를 수행: sqlcmd  bcp합니다.

  1. 공용 저장소 GPG 키를 가져옵니다.

    bash
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -





  1. Microsoft Ubuntu 리포지토리를 등록 합니다.

    bash
    sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
    








  2. 원본 목록 업데이트 하 고 unixODBC 개발자 패키지가으로 설치 명령을 실행 합니다.

    bash
    sudo apt-get update
    sudo apt-get install -y mssql-tools unixodbc-dev
    





  3. 라이센스 기간을 수락하기 위헤서 예를 선택했습니다. 이와 같은 창이 하나 더 뜨는데 그냥 예 [yes] 를 눌러주시면 됩니다. 






    편의 위해 추가
     /opt/mssql-tools/bin/ 하 여 경로 환경 변수입니다.
     따라서 전체 경로 지정 하지 않고 도구를 실행할 수 있습니다. 수정 하려면 다음 명령을 실행 하는 경로 로그인 세션 및 대화형/비-로그인 세션 모두에 대해:

    bash
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc


Sqlcmd 쿼리를 실행 하 고 관리 및 개발 작업을 수행 하도록 SQL Server에 연결 하기 위한 하나의 도구입니다. 다른 도구로 SQL Server Management Studio  Visual Studio Code 이 있습니다. 






로컬로 연결

다음 단계에서는 sqlcmd를 사용하여 새 SQL Server 인스턴스에 로컬로 연결합니다.

  1. sqlcmd를 SQL Server 이름(-S), 사용자 이름(-U) 및 암호(-P)의 매개 변수를 사용하여 실행합니다. 이 자습서에서는 로컬로 연결하므로 서버 이름은 localhost입니다. 사용자 이름은 SA이고 암호는 설치할 때 SA 계정에 지정한 암호입니다.

    bash
    sqlcmd -S localhost -U SA -P '<YourPassword>'
    

    명령줄에서 암호를 생략하여 입력하라는 메시지가 표시되도록 할 수 있습니다.

    나중에 원격으로 연결하려는 경우 -S 매개 변수에 컴퓨터 이름 또는 IP 주소를 지정하고 방화벽에서 포트 1433이 열려 있는지 확인합니다.

  2. 성공하면 sqlcmd 명령 프롬프트 1>이 표시됩니다.

  3. 연결 오류가 발생하는 경우 먼저 오류 메시지에서 문제를 진단합니다. 그런 다음 connection troubleshooting recommendations(연결 문제 해결 권장 사항)를 검토합니다.




저는 -P 까지는 입력하지 않고 아래처럼 SA 까지만 입력했습니다. 
그러면 비밀번호 입력창이 따로 뜨게 되고, 1> 이 나오게 됩니다. 성공적으로 접속 되었습니다. 

sqlcmd -S localhost -U SA



데이터 만들기 및 쿼리

다음 섹션에서는 sqlcmd를 사용하여 새 데이터베이스를 만들고, 데이터를 추가하고, 간단한 쿼리를 실행하는 단계를 안내합니다.


새 데이터베이스 만들기

다음 단계에서는 TestDB라는 새 데이터베이스를 만듭니다.

  1. sqlcmd 명령 프롬프트에서 다음 Transact-SQL 명령을 붙여넣어 테스트 데이터베이스를 만듭니다.

    SQL
    CREATE DATABASE TestDB
    
  2. 다음 줄에 서버에 있는 모든 데이터베이스의 이름을 반환하는 쿼리를 작성합니다.

    SQL
    SELECT Name from sys.Databases
    
  3. 앞의 두 명령은 즉시 실행되지 않았습니다. 앞의 명령을 실행하려면 새 줄에 GO를 입력해야 합니다.

    SQL
    GO
    



트랜잭트 SQL(Transact-SQLT-SQL)은 SQL(구조 질의어)에 대한 마이크로소프트와 사이베이스의 사유 확장으로, 선언문을 이용하여 관계형 데이터베이스를 조회하고 변경하고 정의하기 위해 본래 IBM이 개발한 표준화된 컴퓨터 언어이다.

MSSQL  같은 경우에는 Transact-SQL 을 사용하여 선언을 하는데, GO 를 끝에 입력해 주어야 한다고 합니다. 



데이터 삽입

다음으로 새 테이블 Inventory를 만들고 두 개의 새 행을 삽입합니다.

  1. sqlcmd 명령 프롬프트에서 컨텍스트를 새 TestDB 데이터베이스로 전환합니다.

    SQL
    USE TestDB
    
  2. Inventory라는 새 테이블을 만듭니다.

    SQL
    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. 새 테이블에 데이터를 삽입합니다.

    SQL
    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. GO를 입력하여 앞의 명령을 실행합니다.

    SQL
    GO





데이터 선택

이제 쿼리를 실행하여 Inventory 테이블에서 데이터를 반환합니다.

  1. sqlcmd 명령 프롬프트에서 Inventory 테이블에서 수량이 152보다 큰 행을 반환하는 쿼리를 입력합니다.

    SQL
    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. 명령을 실행합니다.

    SQL
    GO






sqlcmd 명령 프롬프트 종료

sqlcmd 세션을 종료하려면 QUIT를 입력합니다.

SQL
QUIT






설치 과정과 sqlcmd 를 사용한 sql 을 다루는 것은 끝났습니다. 

생각보다 어렵지는 않군요.