PHP5.3 + oracle10g 配置篇

PHP5.3 + oracle10g 配置篇php

apache錯誤:加載不了php_oci8.dll文件,具體緣由我到如今沒有查出來(如今已經解決,在下面能夠看到)html

因此最後卸載了oracle,這也就是遠程連接數據庫的一點省心的地方。sql

1、裝數據庫軟件數據庫

若是裝oracle客戶端的話,同時也用了instantclient。則須要把oci.dllorannzsbb10.dlloraociei10.dll三個文件拷貝到c:/windows/system32目錄下,這樣就不會致使apache啓動的時候加載不了php_oci8.dll。  apache

2、不裝數據庫軟件windows

那麼用plsql連接oracle的方法很簡單。服務器

這裏僅僅須要瞭解的是,若是不裝oracle 的話,plsql的讀取規則是:
1. TNSNAMES.ORA文件名要小寫
2. pl/sql 讀取的TNSNAMES.ORA文件是在instantclient目錄下的文件,其實也就是環境變量裏配置的TNS_ADMIN目錄。網絡

同時,在這種狀況下使用pl/sql,須要在工具->首選項->鏈接裏手動指定oci庫的位置,個人值爲D:\instantclient_10_2\oci.dlloracle

具體方法:tcp

oracle官網上提供了最小訪問包,就是以下3個包,加起來35MB

1、首先去oracle的官方網站上http://www.oracle.com/technology/software/tech/oci/instantclient/index.html下載(下面是10g的):

instantclient-basic-win32-10.2.0.4.zip
instantclient-odbc-win32-10.2.0.4.zip
instantclient-sqlplus-win32-10.2.0.4.zip

將下載的安裝包所有解壓,放在同一個目錄下,好比在d:\instantclient_10_2

2、 控制面板-系統-高級-環境變量-系統變量添加幾個環境變量:

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK(

             AMERICAN_AMERICA.ZHS16GBK)
TNS_ADMIN = d:\instantclient_10_2
LD_LIBRARY_PATH = d:\instantclient_10_2
SQLPATH = d:\instantclient_10_2

Path變量結尾添加d:\instantclient_10_2

3、在d:\instantclient_10_2目錄下建立TNSNAME.ORA文件,本身敲容易出問題,建議直接到安裝oracle數據庫的機器上拷貝過來用,內容以下:

# tnsnames.ora Network Configuration File: D:\oracle\product\10.1.0\db_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.208.120)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
以上文件中,ORCL是個鏈接標示符,能夠本身修改,HOST是遠程Oracle服務器的地址,PORTOracle的服務端口,沒有修改過的話,默認是1521Service_name是遠程實例名稱。

4. 配置host文件(C:\Windows\System32\drivers\etc\),標註要鏈接的Oracle數據庫IP對應名稱信息須要和TNSNAMES.ORA裏的同樣

5、命令行下,切換到d:\instantclient_10_2,運行odbc_install.exe,安裝ODBC驅動。

6、使用sql-plus鏈接

命令行下執行sqlplus /nolog

進入sqlplus提示符,輸入

connect <username>/<password>@<鏈接標識符>

或者
sqlplus system/manager@192.168.208.120:1521/orcl

沒有意外的話鏈接成功。

若是上述方法試驗沒有成功,用下面的方式最直接了
Sqlplus system/manager@(description=(address_list=(address=(proto=tcp)(host=192.168.208.120)(port=1521)))(connect_data=(service_name=orcl)))

若是在本機能夠正常使用,但是到局域網中的其餘機器就出現ORA-12170:TNS:鏈接超時
解決方法:

1.cmd-----ping ip地址 查看網絡問題,看可否ping

2.cmd-----tnsping   ip地址(或者是服務器的實例名SID)若是報TNS-12535:操做超時,多是服務器端防火牆    沒有關閉

3.cmd----netstat -na 查看1521端口是否關閉,若是關閉Windows XP中的防火牆設置中將1521端口設爲例外

4.cmd----lsnrctl status   lsnrctllistener-control 監聽器的縮寫,查看監聽的狀態

相關文章
相關標籤/搜索