database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 16573 게시물 읽기
No. 16573
OPENLINK ODBC 를 이용한 LINUX (SUN) 웹서버 에서 NT의 MS-SQL 서버 접속하기
작성자
정재익(advance)
작성일
2002-07-22 06:09
조회수
9,876

이글의 출처 : PHPSCHOOL

 

 

OPENLINK ODBC 를 이용한 LINUX (SUN) 웹서버 에서 NT의 MS-SQL 서버 접속하기

 

 

www.openlinksw.com 에서 필요한 프로그램를 다운 받는다.

 

아마 등록이 필요할지 모른다. 무료니 부담없이....

 

- linux 클라이언트 쪽에서는 install.sh 설치 스크립트 와 l2kozzzz.taz (SUN solaris25 는 smkozzzz.taz)를 받아야 한다.

- NT 서버는 ntadm65z.zip 라는 리퀘스트 브로커가 필요하다 이 녀석은 서비스로 떠 있다가

LINUX 에서 odbc로 접속을 시도하면 SQL 서버와 연결을 시켜준다. 이게 없으면 접속이 안된다.

 

설치는 LINUX 쪽과 NT 쪽으로 나뉘어 진다.

 

=================================================

LINUX 에서 OPENLINK ODBC 클라이언트 라이브러리 설치

=================================================

 

1. 임시디렉토리(/tmp 혹은 적당한 곳)에

install.sh 설치 스크립트 와 l2kozzzz.taz 를 다운 받는다.

 

=====

잠깐! : linux 용 ODBC 드라이버는 문제가 있는 듯 했다.

SUN에서는 잘 되었다. 이후에 나오는 것은 SUN에서만

----

* l2kozzzz.taz : glibc2 용 - 아직 버그가 있는 듯 , sag.. fault 에러남

* likozzzz.taz : libc5 용 - 문제없음 , 단 다음처럼 복사 필요

cp /usr/i486-linux-libc5/lib/libc.so.5 /usr/local/openlink/odbcsdk/lib/

그러나 아파치컴파일후 Segmentation fault 에러 발생

=====

 

2. openlink 디렉토리를 생성한다.

 

[root@acro /tmp]#

 

3. 위의 두파일을 만들어진 디렉토리로 복사한다.

 

[root@acro /tmp]# cp install.sh l2kozzzz.taz /usr/local/openlink/

 

4. openlink 디렉토리로 이동한다.

 

[root@acro /tmp]# cd /usr/local/openlink/

[root@acro openlink]#

 

5. install.sh 스크립트를 실행 시킨다. 이 스스립트는

odbcsdk 디렉토리를 생성해서 압축을 풀고

odbc.ini 파일을 지정된 사용자의 홈디렉토리로 복사해 준다.

 

[root@acro openlink]# sh install.sh

Extracting (l2kozzzz.taz) ...

Creating scripts ...

Enter the name of the user that will own the programs: root

Enter the name of the group that will own the programs: root

Changing ownership ...

End of installation

[root@acro openlink]#

 

만일 odbc.ini 파일이 홈디렉토리에 없을 경우

odbc.ini 파일을 홈디렉토리로 복사해 준다..

 

[root@acro openlink]# cp /usr/local/openlink/odbcsdk/doc/odbc.ini ~/.odbc.ini

 

 

=============================

NT 에서 OPENLINK 미들웨어 설치

=============================

 

1. ntadm65z.zip 파일을 NT 서버의 적당한 디렉토리에 설치한다.

 

2. 압축을 푼다.

 

3. disk1 디렉토리로 이동한다.

 

4. setup.exe 를 실행시키고 자신의 서버에 맞는 설정을 해준다.

 

5. 제어판의 서비스를 열어 Openlink Request Broker 를 띄운다.

 

 

======================

ODBC 접속 테스트

======================

 

 

1. NT 의 openlink 가 설치된 디렉토리 의 bin 에 있는 udbc.ini 를 LINUX 서버의

/etc/ 에 복사하고 적절하게 설정을 변경한다.

 

[root@acro examples]# cp /tmp/udbc.ini /etc/

 

 

필자의 경우

[dsn_sql6] 을 복사해 SQL 7.0용 으로 만들었다.

 

[dsn_sql7]

Description = Sample MS SQLServer 7 DSN

Host = 203.226.112.***

ServerType = SQLServer 7

ServerOptions =

Database = pubs

FetchBufferSize = 30

;Database =

;ServerOptions =

;ConnectOptions =

;Options =

UserName = sa

Password = ********

;ReadOnly = yes

 

 

2. LD_LIBRARY_PATH 에

/usr/local/openlink/odbcsdk/lib/ 를 추가한다.

 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openlink/odbcsdk/lib/

 

또는

 

setenv LD_LIBRARY_PATH /usr/local/openlink/odbcsdk/lib/

 

 

3. ~/.odbc.ini 파일을 수정한다.

( 주의 ! odbc.ini 가 아니라 .odbc.ini 이다 이것때문에 계속 접속에 실패했다. )

 

 

[OpenLink]

Driver = /usr/local/openlink/odbcsdk/lib/oplodbc.so.1

...

[Default]

Driver = /usr/local/openlink/odbcsdk/lib/oplodbc.so.1

 

 

 

4. openlink 의 예제디렉토리로 이동 LINUX 서버에서 NT 로의 접속을 시도해 보자

 

 

먼저 반드시 환경변수에 다음이 추가되어 있어야 한다.

 

주의 사항 : 시작 스크립트에 넣을 때

csh 인지 bsh 인지 반드시 확인해서

 

setenv 또는 export 를 적절히 구사!

==========================================================

setenv LD_LIBRARY_PATH /usr/local/openlink/odbcsdk/lib

setenv UDBCINI /etc/udbc.ini

setenv ODBCINI /root/.odbc.ini

setenv DebugFile /tmp/udbc.out

===========================================================

 

 

[root@acro openlink]# cd /usr/local/openlink/odbcsdk/examples/

[root@acro examples]# ./odbctest

OpenLink ODBC Demonstration program

This program shows an interactive SQL processor

 

 

Enter ODBC connect string (? shows list): ?

 

DSN | Description

---------------------------------------------------------------

OpenLink | Sample OpenLink MT DSN

 

여기서 나오는 것은 ~/.odbc.ini 에 정의된 것이다.

/etc/udbc.ini 에 정의된 것도 사용할 수 있다.

 

 

Enter ODBC connect string (? shows list): dsn=dsn_sql7

 

반드시 dsn=dsn_sql7 의 형식으로 입력한다.

앞부분의 dsn= 를 빼먹지 않도록 주의 한다.

 

SQL> 프롬프트가 떨어지면 접속에 성공한 것이다.

 

SQL>select pub_id , type, title from titles ;

pub_id|type |title

------+------------+--------------------------------------------------------------------------------

1389 |business |The Busy Executive\s Database Guide

1389 |business |Cooking with Computers: Surreptitious Balance Sheets

0736 |business |You Can Combat Computer Stress!

1389 |business |Straight Talk About Computers

0877 |mod_cook |Silicon Valley Gastronomic Treats

0877 |mod_cook |The Gourmet Microwave

0877 |UNDECIDED |The Psychology of Computer Cooking

1389 |popular_comp|But Is It User Friendly?

1389 |popular_comp|Secrets of Silicon Valley

1389 |popular_comp|Net Etiquette

0877 |psychology |Computer Phobic AND Non-Phobic Individuals: Behavior Variations

0736 |psychology |Is Anger the Enemy?

0736 |psychology |Life Without Fear

0736 |psychology |Prolonged Data Deprivation: Four Case Studies

0736 |psychology |Emotional Security: A New Algorithm

0877 |trad_cook |Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean

0877 |trad_cook |Fifty Years in Buckingham Palace Kitchens

0877 |trad_cook |Sushi, Anyone?

18 row(s) fetched.

 

SQL>exit

 

Have a nice day.

[root@acro examples]#

 

 

 

======================

PHP 컴파일

=====================

 

1. php 디렉토리로 이동 setup 을 실행한다

 

[root@acro php-3.0.11]# ./setup

..

OpenLink ODBC support? (`yes\, `no\ or dir) [no] : y

Enter OpenLink install directory [/usr/local/openlink] :

...

...

checking for OpenLink ODBC support... yes

 

2. 그 이후의 인스톨 방법은 About APM과 동일하다.

 

 

 

 

위의 스크립트를 실행시키면 중간에 다음과 같은 부분이 나오면

ODBC 를 지원하는 것이다.

 

 

Unified ODBC Support active (compiled with unknown library)

allow_persistent: -1

max_persistent: -1

max_links: -1

 

3. 아래의 소스를 실행 시킨다.

 

===================================

0){

echo \Number of fields: $num_fields\;

for($i=1;$i<=$num_fields;$i++){

$field_name[$i-1]=odbc_field_name($result_id,$i);

}

$num_rows=0;

while(odbc_fetch_row($result_id)){

for($i=1;$i<=$num_fields;$i++){

$result[$num_rows][$field_name[$i-1]]=odbc_result($result_id,$i);

}

$num_rows++;

}

echo \Number of rows: $num_rows\;

}else{

echo \not a field returned. \;

}

echo \Results:\;

for($i=0;$i

===================================

 

만일 아래와 같은 경고가 나오면

 

웹서버가 /root/.odbc.ini 파일에 접근하지 못해서 생기는 문제이므로

 

.odbc.ini 를 적당한 디렉토리로 이동하고 퍼미션을 변경해 준다

 

원본출처 : http://www.phpschool.com/

 

Warning: SQL error: [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded, SQL state IM002 in SQLConnect in /usr/local/apache/htdocs/mssql.php on line 17

can not connect to DSN: dsn=dsn_sql6

 

 

저의 경우는 LINUX 서버에서 접속은 실패했지만 ...

SUN 에서는 성공했습니다.

 

LINUX 에서 성공하신 분들은 글 올려주세요

[Top]
No.
제목
작성자
작성일
조회
16577MySQL 원격접속과 루트패스분실 및 소켓에러에 대한 팁
정재익
2002-07-22
10280
16575APM + Zend Optimizer + gd + imap + Tomcat + mysql용JDBC + JDK1.3 설치하기
정재익
2002-07-22
6887
16574IIS(ASP) + MYSQL(linux/unix) 연동방법
정재익
2002-07-22
7106
16573OPENLINK ODBC 를 이용한 LINUX (SUN) 웹서버 에서 NT의 MS-SQL 서버 접속하기
정재익
2002-07-22
9876
16571DB(Oracle8.1.6, Mysql)+PHP+Zend Optimizer+APACHE+Tomcat(jsp,servlet)+IMAP+gd
정재익
2002-07-22
11764
16570MYSQL BACKUP
정재익
2002-07-22
8826
16569MySQL 시작하기
정재익
2002-07-22
18037
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다