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 监听器的缩写,查看监听的状态

相关文章
相关标签/搜索