尝试连接到数据库时出现错误
install_driver(Oracle) failed: Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread- multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/5.8.8/x86_64-linux-thread- multi/DynaLoader.pm line 230. at (eval 3) line 3 Compilation failed in require at (eval 3) line 3.
也许所需的共享库或DLL没有安装在预期的地方
请重新生成DBD :: Oracle PERL模块,确保您拥有机器上的所有ORACLE环境设置,包括ORACLE_HOME和LD_LIBRARY_PATH。 $ ORACLE_HOME文件夹包含这三个重要的文件夹:
ls -la $ORACLE_HOME bin lib network ...
它被定义为(请根据需要选择/调整):
ORACLE_HOME=/usr/lib/oracle/11.2/client64 (RHEL5, oracle-instantclient11.2-basic-11.2 rpm packages) ORACLE_HOME=/usr/lib64/oracle/10.2.0.4/client64 (RHEL5, oracle-instantclient-basic-10.2.0.4 rpm packages) ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 (Oracle 11g server installation)
几乎总是:
LD_LIBRARY_PATH=$ORACLE_HOME/lib
(这是“libclntsh.so.11.1”文件所在的文件夹!!此LD_LIBRARY_PATH路径将帮助PERL DB :: Oracle模块找到它!)
以下是使用Oracle 11g服务器的服务器上的用户环境设置示例:
cat /etc/profile.d/oracle-profile.sh ORACLE_OWNER=oracle ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 ORACLE_BASE=/home/oracle/app/oracle PATH=$PATH:$ORACLE_HOME/bin LD_LIBRARY_PATH=$ORACLE_HOME/lib export ORACLE_OWNER ORACLE_HOME ORACLE_BASE PATH LD_LIBRARY_PATH
我希望它有帮助。
1)找到Oracle.so在哪里(你可以使用locate commande)
– >找到Oracle.so
– > xxxxxx / perl / lib / site_perl / 5.10.0 / x86_64-linux-thread-multi / auto / DBD / Oracle
2)修改脚本Perl:
使用lib“xxxxxxx / perl / lib / site_perl / 5.10.0 / x86_64-linux-thread-multi / auto / DBD / Oracle /”;
所以编译知道Oracle.so在哪里