linux 에서 oracle instantclient 원 격 연결 서버 사용
6892 단어 Oacle
1. 소프트웨어 를 먼저 다운로드 합 니 다. http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
sqlplus 로 접근 하고 싶 고 phop 프로그램 으로 접근 하고 싶 어서 다운로드 하 였 습 니 다.
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
설치 소프트웨어 직접 rpm - ivh oracle *
2. 설 치 된 디 렉 터 리 / usr / lib / oracle / 11.1 / client / lib / 가 존재 하 는 지, 또는 이름 이 나 와 일치 하지 않 는 지, 일치 하지 않 는 지, 실행:
vi / etc / ld. so. conf. d / oracle - lib. conf 가입 / usr / lib / oracle / 11.2 / client 64 / lib /
ldconfig
3, 다운로드 http://pecl.php.net/package/oci8 의 소프트웨어 oci 8 - 1.4.7. tgz, 자신 이 선택 한 버 전
tar xzf oci8-1.4.7.tgz
cd oci8-1.4.7
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib/
make && make install
4. / etc / phop. ini 에: extension = "oci 8. so" 를 추가 합 니 다.이 어 phop - m 를 사용 하여 모듈 이 불 러 왔 는 지, apache 를 다시 시작 하 는 지, phopinfo 에서 oci 모듈 이 있 는 지 확인 합 니 다.
5. 실제로 Oacle 이 설치 되 어 있 습 니 다. 인 스 턴 트 클 라 이언 트 이후 방대 한 Oacle 클 라 이언 트 를 설치 할 필요 가 없습니다. 그러나 지금까지 프로그램 을 쓰 든 sqlplus 를 사용 하 든 데이터 베 이 스 를 잘못 보고 할 수 있 습 니 다. 연결 방식: sqlplus' 사용자 이름 / '비밀번호' @ 데이터베이스 서비스 이름 (여기 서 작은 따옴표 를 사용 하 는 것 은 암호 에 특수 문자 가 들 어 있 는 것 을 피하 기 위해 서 입 니 다 @)
오류: ORA - 12154: TNS: 지정 한 연결 식별 자 를 분석 할 수 없습니다.
tnsnames. ora 가 지정 되 지 않 았 기 때 문 입 니 다.
6. / usr / lib / oracle / 11.2 / client 64 디 렉 터 리 에 mkdir - p network / admin 을 새로 만 든 다음 admin 디 렉 터 리 에 tnsnames. ora 를 새로 만 들 고 다음 과 같은 내용 을 기록 합 니 다.
#tnsnames.ora Network Configuration File: /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
SDHE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.203.49)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dhe)
)
)
DHE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.191.23)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dhe)
)
)
또는 Oacle 서버 에서 같은 디 렉 터 리 에 있 는 이 파일 을 직접 복사 합 니 다.
sqlnet. ora 를 새로 만 들 고 쓰기:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
7, 환경 변수 설정: ~ /. bashrc 에 기록:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin
8, 다시 sqlplus 로 로그 인, sqlplus' 사용자 이름 / '비밀번호' @ dhe, 성공!이 때 사용자 가 읽 기 권한 만 있다 면 라 이브 러 리 에 있 는 표 의 데 이 터 를 읽 으 려 면 select * from 라 이브 러 리 이름. 표 이름
9. 이때 체크 백 키 를 사용 하면 오류 가 발생 합 니 다. ~ /. bashrc 에 stty erase ^ H 를 기록 합 니 다.중국어 검색 도 어 지 러 울 수 있 으 니 실행 하 세 요.
sqlplus user/pass@ip/sid (sqlplus , )
# :
SQL>
select
userenv(
'language'
) from dual;
USERENV(
'LANGUAGE'
)
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
로 컬 문자 집합 변 수 를 위 에서 찾 은 것 으로 설정 합 니 다!
vim ~/.bashrc
export
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
10. 과거 명령 을 가 져 오 려 면 위로 화살표 키 를 사용 하 십시오. rlwrap 을 설치 하고 설정 하 십시오. 저 는 해 본 적 이 없습니다 ~
11. 설정 을 검사 하기 위해 phop 프로그램 을 쓰 려 면 다음 절 차 를 참고 하 십시오.
<?
$dbconn=OCILogon("dev","!@#","dhe");
if($dbconn){
echo "yes";
}else{
echo "no";
}
$sql ="select name from dhe.user";
$stmt = OCIParse($dbconn, $sql);
if(!$stmt) {
echo "<h1>ERROR - Could not parse SQL statement.</h1>";
OCILogoff($dbconn);
exit;
}
OCIExecute($stmt);
while( OCIFetchInto($stmt, $result_array) )
{
echo "name=$result_array[0]
";
}
OCILogoff($dbconn);
?>
12. 요약: 저 는 하루 가 넘 게 이 설정 을 했 습 니 다. 주로 처음에 Oacle 클 라 이언 트 를 설치 해 야 하 는 지 알 수 없 었 습 니 다. 그리고 제 가 방문 한 것 은 다른 사람의 데이터 베 이 스 였 습 니 다. 권한 을 열 어야 하고 권한 이 개통 되 었 는 지 알 수 없 었 습 니 다. 제 가 사용 할 수 있 는 사용 자 는 읽 기 권한 만 있 었 습 니 다. 이것 은 제 작업 에 제한 을 받 았 습 니 다.그리고 비밀번호 에 @ 기호 가 들 어 있 는 문제 도 저 를 오랫동안 괴 롭 혔 습 니 다. 마지막 으로 phop 프로그램 이 어떻게 쓰 는 지 모 르 겠 습 니 다. Oacle 의 phop api 가 두 세트 가 있 는 것 같 습 니 다. 저도 잘 모 르 겠 습 니 다. 물론 가장 큰 문 제 는 제 경험 이 부족 합 니 다.
13. 많은 글 을 참고 하여 일일이 열거 하지 않 았 습 니 다. 문제 가 있 거나 본문 이 잘못 되 었 으 면 지적 해 주 십시오. 감사합니다!
---------------------------------------
다음:
1. phop test. php 를 사용 하면 Oacle 에 성공 적 으로 접근 할 수 있 지만 apache 에 두 면 브 라 우 저 로 접근 하면 오류 가 발생 하여 지정 한 연결 식별 자 를 분석 할 수 없습니다.
이 유 는 apache 를 시작 할 때 service httpd restart 를 사용 하고 환경 변 수 를 도입 하지 않 았 기 때문에 스스로 시작 스 크 립 트 를 작성 합 니 다.
#!/bin/bash
service httpd stop
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#service httpd start
/usr/sbin/apachectl start
echo "Start httpd: [ OK ]"
2. 중국어 난 코드 를 찾 아 OCILogon ("dev", "@ \ #", "dhe", "gb 2312") 에서 찾 습 니 다.마지막 매개 변수 설정 문자 인 코딩: gbk, utf 8 등;
-
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
activemq 5.5 의 입문 은 설치, 시작, 데이터베이스 지속 화 를 포함한다Apache ActiveMQ 5.5.0 은 주로 유지보수 버 전 으로 130 개가 넘 는 문 제 를 복 구 했 으 며 대부분 bug 와 개선 이 었 다. Improved performance for offline d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.