Linux에서 odbc.ini 및 odbcinst.ini 파일에 대한 올바른 문서를 찾고


11

부분 정보, 오래된 정보를 보았지만 현지에서 가지고있는 간단한 설명이있는 실제 샘플 파일만큼 좋은 것은 없었습니다.

나는 사이의 정확한 관계를 이해할 필요 odbc.ini하고 odbcinst.ini. 표면적으로는 매우 분명합니다. odbc.ini파일 상단에는 다음 과 같은 섹션이 있습니다.

[ODBC Data Sources]
MYDSN = MyDriverName
...

그러나 예를 들어 드라이버 또는 DSN 섹션에서 설정을 가질 수 있는지 확실하지 않습니다.

1) Driver = /path/to/file/.so두 파일 모두에 줄 이 있으며 때로는 값이 다릅니다. 이것도 말이 되나요? 그렇다면 어느 것이 우선합니까?

2) odbcinst.ini자바 스크립트와 같은 "프로토 타입"은 odbc.ini? 나는 일반적인 설정의 DSN의 번호를 생성하고있는 경우 즉, 나는에서 일반적인 설정을 홍보 할 수 odbc.iniodbcinst.ini?

3) 사이의 차이가 무엇 DriverSetup의는 odbcinst.ini? 그들은 같은 가치를 가진 것 같습니다. 이러한 설정은 데이터베이스에 특정한 것입니까 아니면 보편적입니까?



위의 링크가 도움이 될 것이라고 생각합니다. ORACLE 데이터 소스에 대해 odbc.ini 파일을 구성하면 ORACLE이 무엇인지 시스템이 어떻게 알 수 있는지, 이것이 odbcinst.ini가 정의하는 것입니다. 이것은 "시스템 전체"대신 특정 경로 / 소프트웨어 세트에 국한 될 수 있습니다.
Schrute

답변:


9

내가 사용 FreeTDSDebian연결 phpA를 구동 형 웹 사이트를 MS-SQL Server 2005데이터베이스.

구성 파일에 대한 설명은 다음과 같습니다.

/etc/odbc.ini

php데이터베이스에 연결 하는 핸들러 (예 :) 내에서 참조되는 인스턴스를 보유 합니다 (아래 예 참조). 구성은 연결해야하는 서버를 정의합니다.

[freetds_odbc_connection]
Driver          =       FreeTDS
Description     =       test
Database        =       MyCompanyDb
Server          =       frodo
Readonly        =       Yes
Port            =       1433
Trace           =       No

-

/etc/odbcinst.ini

Driver섹션에 대한 구성을 보유합니다 odbc.ini.

[FreeTDS]
Description     = TDS connection
Driver          = /usr/lib/odbc/libtdsodbc.so
Setup           = /usr/lib/odbc/libtdsS.so
UsageCount      = 1
FileUsage       = 1
Trace           = Yes
TraceFile       = /tmp/odbcinst_tr

-

show-companies.php

php연결을 설정하고 사용하는 방법을 보여주는 예제 코드입니다.

  $host="freetds_odbc_connection";
  $user="freetds";
  $password="secretpassword";
  $conn_id = odbc_connect($host, $user ,$password) or die (odbc_errormsg());

  $sql_companies =  "SELECT * from AMGR_Client_Tbl WHERE Record_Type='1'";

  $query_companies = odbc_exec($conn_id, $sql_companies);
  while (odbc_fetch_row($query_companies))
  {
    $client_id     = odbc_result($query_companies, 6);
    $company_name  = odbc_result($query_companies, 9);
  }

설정하고 사용할 수있는 다른 변수가 많이 있다고 확신하지만 요청한 파일에 대해 가장 간단한 설명입니다.


4

유닉스 구현 만 살펴보면 ODBC 작동 방식에 대한 흥미로운 아이디어를 얻을 수 있습니다. 이러한 구현 중 어느 것도 Windows의 ODBC 구현 , 즉 Microsoft 의 관리자가 생성 한 참조 구현과 100 % 비교할 수 없습니다 .

Unix에는 일반적으로 두 개의 ODBC 드라이버 관리자가 있습니다. 이 질문과 관련된 문서가 여기에 있는 iODBC 는 고용주가 관리하고 지원합니다. UnixODBC 는 다른 것이며 다른 답변에서 논의되었습니다. 둘 다 표준에 대해 플랫폼에 구애받지 않는 구현이므로 서로 및 Windows 구현과 동등한 API를 의미합니다.

간단히 말해서, odbcinst.ini환경에서 ODBC 드라이버 odbc.ini의 레지스트리 및 구성 파일이고, 일반적으로 다른 서버에 등록 된 드라이버를 기반으로하는 ODBC DSN (데이터 소스 이름)의 레지스트리 및 구성 파일입니다.

몇 가지 구체적인 질문이 있습니다 ...

1) Driver = /path/to/file/.so두 파일 모두에 줄 이 있으며 때로는 값이 다릅니다. 이것도 말이 되나요? 그렇다면 어느 것이 우선합니까?

Driver = /path/to/file.so모두 경로로 표현되는 경우, 일반적으로 두 파일 모두 동일해야한다. 이어 odbc.ini,이 항목 대신 할 수 Driver = {name of driver}에서 인덱스로 이름입니다 odbcinst.ini. 일반적으로 설정 odbc.ini이 충돌하는 설정보다 우선 odbcinst.ini합니다.

2) odbcinst.ini자바 스크립트와 같은 "프로토 타입"은 odbc.ini? 나는 일반적인 설정의 DSN의 번호를 생성하고있는 경우 즉, 나는에서 일반적인 설정을 홍보 할 수 odbc.iniodbcinst.ini?

아니요, odbcinst.ini이런 식으로 "시제품"이 아닙니다. odbcinst.ini설정은 드라이버 와 관련이 있지만 해당 드라이버를 기반으로하는 DSN 과는 관련이 없습니다 .

3) 사이의 차이가 무엇 DriverSetup의는 odbcinst.ini? 그들은 같은 가치를 가진 것 같습니다. 이러한 설정은 데이터베이스에 특정한 것입니까 아니면 보편적입니까?

에서는 odbcinst.ini의는 Driver =드라이버 라이브러리와 의미 Setup =설치 라이브러리. 후자는 전적으로 선택 사항이며, 존재하는 경우 데이터 연결 중에 사용할 필요는 없습니다. 주로 DSN으로 저장하기 위해 이러한 연결을 "설정"할 때 ODBC 관리자가 사용하기위한 것입니다. 때때로 이러한 라이브러리는 동일한 실제 파일에 있지만, 예를 들어 OS X 환경에 있지 않아도됩니다.


1

Google에서 첫 번째로 방문한 unixodbc 사이트의 odbcinst.ini와 odbc.ini의 간단한 차이점은 다음과 같습니다.

시스템 파일 odbcinst.ini에는 모든 사용자가 사용할 수있는 ODBC 드라이버에 대한 정보가 포함되어 있으며 odbc.ini 파일에는 모든 사용자가 사용할 수있는 DSN에 대한 정보가 포함되어 있습니다. 이러한 "시스템 DSN"은 실제 사용자로 실행되지 않을 수있는 웹 서버와 같은 응용 프로그램에 유용하므로 .odbc.ini 파일을 포함 할 홈 디렉토리가 없습니다.


감사. 구문에서 많은 부분을 유추했음을 언급하는 것을 잊었습니다. 실제로 모든 DSN은 odbc.ini의 맨 위에 {DSN} = {Driver} 구문을 사용하여 드라이버를 지정해야하지만 여전히 혼동됩니다.
Leonid

0

설명서가 여기에 있다고 가정합니다 (클릭 Manuals한 후 User Manual). 그러나 불행히도에 대한 링크 Administrator Manual와이 Programmer Manual끊어집니다. (나는 이것을보고했고 그들이 고쳐질 것이라고 들었다.)

그래서 지금은 ...

누락 된 매뉴얼은 http://www.unixodbc.org/ 에서 unixODBC-2.3.4.tar.gz를 다운로드 한 다음 아카이브 관리자 (또는 이와 유사한 것)로 열고 다음 세 가지 매뉴얼을보십시오.

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