MS-SQL 설치 및 DBeaver에 MS-SQL 연결 (MS-SQL의 인스턴스 개념 알고가기)
진짜 오만가지 다 시도했는데 URL을 직접 입력하니까 됐음
그런데 이 과정이 꽤 복잡하당
1. SQL Server 다운로드
MSSQL을 검색하여 서버를 설치합니다.
https://www.microsoft.com/ko-kr/sql-server/sql-server-downloads
2. SSMS(SQL Server Management Studio) 다운로드
SSMS(SQL Server Management Studio)는 SQL Server에서 Azure SQL Database까지 모든 SQL 인프라를 관리하기 위한 통합 환경입니다. SSMS는 SQL Server 및 데이터베이스의 인스턴스를 구성, 모니터링 및 관리하는 도구를 제공합니다. SSMS를 사용하면 애플리케이션에 사용되는 데이터 계층 구성 요소를 배포, 모니터링 및 업그레이드하고 쿼리 및 스크립트를 작성할 수 있습니다. (공식 문서)
다른 툴을 쓸거여도 일단 얘로 사전 설정을 해야 서버에 접속이 가능합니다.
SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS)
SQL_A 및 Azure SQL 인스턴스를 관리하고 구성하려면 최신 버전의 SSMS(SQL Server Management Studio)를 다운로드하세요.
learn.microsoft.com
3. SSMS로 MS-SQL 서버 접속
서버 이름을 설정하고 접속한다.
여기에서 가능한 방식이 몇가지 있다.
나는 .\SQLEXPRESS 가 기본인 줄 알고 들어갔다가 나중에 조금 애를 먹었다. 이건 나중에 후술
연결 방식 | 대상 서버 | |
. | 기본 인스턴스 | localhost, . |
.\SQLEXPRESS | 명명된 인스턴스 | (서버명)\SQLEXPRESS, .\SQLEXPRESS |
Windows 인증으로 접속 후에 사전 작업을 해주어야한다.
서버 우클릭 후 속성
보안 - 서버 인증 - SQL Server 및 Windows 인증 모드
서버 - 보안 - 로그인에 sa 계정의 속성에 들어간다.
MariaDB는 처음 설치할때 root의 비번을 설정하는데 MS-SQL 설치 과정에 비번 설정하는 과정이 없길래 내가 임의로 root 계정을 생성하였으나 알고보니 MS-SQL은 sa가 초기 관리자 계정이었음
비밀번호를 변경해준다.
4. Sql Server Configuration Manager 설정
SQL Server 초기 설치 시에는 기본적으로 TCP/IP 접근이 비활성화되어 있습니다. 이는 SQL Server가 설치된 후 보안을 강화하기 위해 외부 연결을 제한하는 기본 설정 때문입니다.
이를 설정해줍시다.
Window+r 단축키로 실행 창에 접속 뒤 sqlservermanager(버전).msc 실행
(버전 알아내는 법)
C:\Program Files\Microsoft SQL Server 경로에 가면 폴더 명에 있음 나의 경우엔 16
TPC/IP 사용으로 변경
변경 후에는 서버를 다시 시작해주는 것을 잊지 맙시다.
- 기본 인스턴스: SQL Server (MSSQLSERVER)
- 명명된 인스턴스: SQL Server (인스턴스 이름)
5. 방화벽 설정
검색해서 고급 보안이 포함된 Windows Defender 방화벽을 열어줍니다.
인바운드 규칙에서 새 규칙을 클릭합니다.
포트 선택합니다.
여기서 1433과 1434 두 포트를 허용하는 이유
MariaDB에서는 새로운 서버 인스턴스를 생성하려면 보통 포트를 별도로 설정하여 실행합니다. 이는 여러 MariaDB 인스턴스를 동일한 시스템에서 독립적으로 운영할 때 사용되는 일반적인 방식입니다.
SQL Server의 인스턴스
- 인스턴스란?
- SQL Server에서 인스턴스는 하나의 서버 내에서 독립적으로 실행되는 SQL Server의 개별 실행 환경을 의미합니다.
- 각각의 인스턴스는 고유한 설정, 데이터, 로그 파일, 포트 등을 가지며, 서로 독립적으로 동작합니다.
- 기본 인스턴스와 명명된 인스턴스
- 기본 인스턴스(Default Instance):
- 서버에서 하나만 존재 가능.
- 서버 이름만 사용해 연결 가능 (예: localhost, SY).
- 포트 기본값: 1433.
- 명명된 인스턴스(Named Instance):
- 기본 인스턴스 외에 추가로 생성할 수 있는 인스턴스.
- 고유한 이름(예: SQLEXPRESS)과 동적 또는 고정 포트를 사용.
- 예: localhost\SQLEXPRESS.
- 기본 인스턴스(Default Instance):
명명된 인스턴스와 SQL Server Browser 서비스의 역할
- 명명된 인스턴스와 동적 포트:
- 기본 인스턴스는 항상 **고정 포트(기본값: TCP 1433)**를 사용합니다.
- 명명된 인스턴스는 기본적으로 동적 포트를 사용하며, SQL Server가 실행될 때마다 다른 포트가 할당됩니다.
- 동적 포트를 사용하는 명명된 인스턴스에 연결하려면 클라이언트는 해당 인스턴스의 포트를 알아야 합니다.
- SQL Server Browser 서비스의 역할:
- 클라이언트가 명명된 인스턴스 이름(예: SY\SQLEXPRESS)으로 연결을 시도하면, SQL Server Browser 서비스가 UDP 1434 포트를 통해 해당 인스턴스의 포트 정보를 제공합니다.
- 클라이언트는 받은 포트 정보를 사용해 SQL Server에 연결합니다.
6. 디비버에서 접속하기
SQL Server 선택
여기서 헤맨 것!!!! 나는 명명된 인스턴스를 사용했기 때문에 URL에 인스턴스 명을 명시해줘야한다
jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;databaseName=mes_wp;user=sa;password=(설정비번);
이런 식으로 인스턴스 명을 넣어줘야하는데 나는 인스턴스 개념을 몰랐기 때문에 그저 Connect by 호스트로 선택해서 접속하려다보니 접속이 안되었었다.