우분투에서 MSSQL 연결


10

우분투에서 MSSQL 연결을 만들기위한 쉽고 완전한 자습서가 필요합니다.

FreeTDS와 UnixODBC를 설치했다고 생각하지만 구성이 매우 복잡하여 문제를 이해하지 못했습니다.

나는이 튜토리얼을 따라 갔다 : https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu

그러나 나는 실패했다.

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

편집하다:

이 편집 전에 "/etc/odbcinst.ini"및 "/etc/odbc.ini"는 비어있었습니다.

이 줄을 /etc/odbcinst.ini에 추가했습니다.

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

이 줄을 /etc/odbc.ini에 추가했습니다.

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

처음부터 "/etc/freetds/freetds.conf"를 변경하지 않았습니다.

여전히 아무것도 바뀌지 않았습니다.


ODBC 파일 (/etc/odbc.ini)에 항목을 작성 했습니까? 또한 "/etc/odbcinst.ini"파일에서 드라이브를 점검하십시오
vembutech

이 두 파일이 모두 비어 있습니다. 정확히 어떻게해야합니까? 링크 나 세부 정보를 공유 할 수 있습니까?
mertyildiran

귀하가 팔로우 한 링크에서 사용 가능한 "UnixODBC 구성"단계를 놓쳤다 고 생각합니다. URL 에서처럼 github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/… 와 같은 두 파일을 업데이트하고 문제가 해결되었는지 확인하십시오.
vembutech

아무것도 변경되지
않았습니다.

답변:


11

단계별 지침은 다음과 같습니다 (여기 참조) .

먼저, unixODBC를 설치하십시오 :

sudo apt-get install unixodbc unixodbc-dev

나는 또한 다음과 같은 패키지를 설치했다.

sudo apt-get install tdsodbc php5-odbc

그런 다음 FreeTDS를 다운로드, 압축 해제, 컴파일 및 설치하십시오 (경고, URL이 변경 될 수 있음).

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

Telnet을 통해 SQL Server 인스턴스에 연결을 시도하십시오.

telnet 192.168.0.1 1433

tsql 도구를 사용하여 연결을 테스트하십시오.

tsql -S 192.168.0.1 -U devuser

암호를 입력하라는 메시지가 표시되면이 아름다운 사인을 보길 희망 할 수 있습니다.

1>

그것이 효과가 있다면 (코딩) 파티를 던지는 것이 좋습니다. 다음은 일부 구성입니다. FreeTDS 구성 파일을여십시오. /usr/local/etc/freetds.conf

파일 맨 아래에 다음 항목을 추가하십시오. 'MSSQL'이라는 데이터 소스 이름 (DSN)을 설정하고 있습니다.

[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0

이제 ODBC 구성 파일을여십시오. /usr/local/etc/odbcinst.ini

그리고 마지막에 다음 MSSQL 드라이버 항목 (FreeTDS)을 추가하십시오.

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

그런 다음 마지막으로 odbc.ini 파일 /usr/local/etc/odbc.ini에서 ODBC 내에 DSN을 설정하십시오.이 비트를 파일에 추가하여 다음을 수행하십시오.

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

isql 도구를 사용하여 연결을 테스트하십시오.

isql -v MSSQL devuser 'devpass'

“Connected!”가 표시되면 당신은 황금입니다, 축하합니다! 그렇지 않다면 정말 죄송합니다. 도움이 될만한 자료가있는 곳은 아래를 참조하십시오.

이제 Apache를 재시작하고 'MSSQL'을 DSN으로 사용하여 PHP에서 테스트하십시오. 문제가 해결되지 않으면 다음 패키지 중 일부 또는 전부를 설치해보십시오. mdbtools libmdbodbc libmdbtools mdbtools-gmdb


"tsql -S 192.168.0.1 -U devuser"이후 : 외부 호스트가 연결을 닫았습니다. 어떻게해야합니까?
mertyildiran

로컬 IP 사용
Trevor Clarke

실제로 "tsql -S 77.223.141.204 -U 베이컨"을 사용했습니다. MSSQL 서버의 IP 주소
mertyildiran

그렇다면 localhost가 아니겠습니까? 자신의 외부 IP에 연결할 수 없기 때문입니다.
Trevor Clarke

예,이 방법으로 외부 IP에 액세스 할 수 없습니까? 어떻게해야합니까?
mertyildiran


0

링크의 내용을 파일에 복사했으면합니다. "/etc/odbc.ini"파일에서 SQL 서버 세부 사항을 업데이트해야합니다. 당신은 http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/ 링크를 참조 할 수 있습니다


"tsql -S 192.168.0.1 -U devuser"이후 : 외부 호스트가 연결을 닫았습니다. 어떻게해야합니까?
mertyildiran

포트 1433이 MSSQL 서버에서 열려 있는지 확인할 수 있습니다. MSSQL 서버의 포트 1433에 액세스 할 수 있는지 확인해야합니다. 그것이 열려 있지 않으면 친절하게 포트를 열고 확인하십시오
vembutech

0

LTS 64 비트 인 Ubuntu 14.04 및 17.04 에서이 작업을 수행해야했습니다. 아마도 이후 버전에서 작동합니다.

unixodbc (ODBC 연결), freetds (SQL Server 연결) 및 tdsodbc (이전 둘 사이의 브릿지) 설치

sudo apt install unixodbc freetds-bin tdsodbc

ODBC 드라이버를 /etc/odbcinst.ini에 추가하십시오 (비어 있어야 함).

[SQL Server]
Description = FreeTDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

DSN을 /etc/odbc.ini에 추가하십시오 (비어 있어야 함).

[ACCOUNTING]
Description = Accounting database
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Server = 123.123.123.123
Database = your_database_name
Port = 1433

그리고 그게 전부였습니다.


libtdsodbc.so 및 libtdsS.so는 / usr / lib / x86_64-linux-gnu / odbc /
Strixy

0

다음에 의해 암시 된 질문에 대답하려면 :

우분투에서 MSSQL 연결을 만들기위한 쉽고 완전한 자습서가 필요합니다.

... 모든 FreeTDS 설정을 무시합니다.

사용 MSSQL-CLI ( 설치 , 사용 ).


0

Microsoft 제품을 많이 사용하는 회사에서 근무하고 있습니다. 그러나 Linux 시스템 (Ubuntu)에서 작업하는 것을 선호합니다. 특히, 나는 Ubuntu 16.04 LTS를 사용 합니다.

JetBrains의 DataGrip 또는 SQL Electron 을 SQL GUI로 사용합니다. DataGrip을 사용하려면 DataGrip을 처음 열 때 수동으로 지정해야하는 SQL Server 용 Microsoft JDBC 드라이버 가 필요합니다 . 나는 이것을 넣었 /usr/share/java/지만 어디에서나 효과가 있습니다.

Windows 10 랩탑에서 연결이 간단합니다. 간단히 SQL Server Management Studio를 열고 자격 증명을 사용하여 로그인합니다 (사용자 이름 + 암호). Windows 인증을 사용하지 않습니다.

전제 조건

우분투에서 연결하기 위해서는 약간의 추가 작업이 필요합니다. 먼저, Windows 10 컴퓨터에서 Powershell 터미널을 열고 다음을 입력하십시오.

nslookup <server name here>

그리고 그것은 같은 것을 반환합니다

Non-authoritative answer:
Name: <server name here>
Address: <server's address>

서버의 이름과 주소는 정적이므로, 액세스하려는 서버 당 한 번만 실행하면됩니다.

DataGrip

그런 다음 Linux 시스템으로 이동하여 DataGrip을 엽니 다. 의 경우 Host에 I 형 <server's address>1433 (이 MS SQL Server에 대한 기본값) : 포트. URL은 다음과 같아야합니다.

URL: jdbc:sqlserver://<server's address>:1433

를 클릭 Test Connection하면 아직 로그인 정보를 입력하지 않은 경우 로그인 정보를 묻는 메시지가 나타납니다. 그리고 그것이 DataGrip을위한 것입니다!

DataGrip에는 다음 블로그가 있으며,이 블로그는 새로운 사용자에게 도움이 될 수 있습니다. DataGrip을 MS SQL Server에 연결

SQL 전자

DataGrip을 구매하지 않으려면 SQL Electron을 사용할 수 있습니다. 단계는 비슷합니다. SQL Electron을 열고 add를 클릭하여 새 서버를 추가 한 후 포트 : 1433 을 Server Address입력 <server's address>하고 마지막으로 로그인 자격 증명을 입력하십시오. 그리고 그게 다야!


0

원격 서버에서 실행중인 MSSQL 인스턴스에 연결하려면 다음을 수행하십시오.

이 기사 https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql 에서 적용 가능한 단계를 수행 하십시오. -server-2017

참고 : 테스트를 완료하려면 몇 가지 추가 작업을 수행해야합니다. /etc/odbc.ini를 편집하고 다음을 추가하십시오.

[MSSQL] Driver=ODBC Driver 17 for SQL Server Server=[ServerIP][,1433]

테스트를 수행하려면 터미널에서 다음을 실행하십시오.

isql -v MSSQL [사용자 이름] [암호]

"연결된"응답이 나타납니다.

어려움을 겪고 있다면 Linux 및 Windows 서버의 포트가 열려 있는지 확인하십시오!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.