繁体   English   中英

与PuTTY连接后无法使用Perl脚本连接到Linux Oracle Databse

[英]Cannot Connect to Linux Oracle Databse with Perl Script after connecting with PuTTY

我有以下问题:

我目前在Windows 10计算机上使用PuTTY连接到我们的Linux服务器之一。 如果使用“标准” PuTTY连接,则没有问题:我可以登录并运行我的Perl脚本来访问Linux服务器上的Oracle数据库。 但是,最近我建立了一个新的PuTTY连接(我复制了上面使用的原始工作副本)。 与原始文件的唯一区别是,我在PuTTY配置窗口的Connection->SSH->Remote command部分中输入了以下内容:

cd ../home/code/project1/scripts/perl ; /bin/bash

(我这样做是为了直接进入包含所有脚本的文件夹。)

我仍然可以毫无问题地登录服务器,它直接将我带到包含Perl脚本的文件夹中。 但是,当我运行脚本访问Oracle数据库时,出现以下错误:

DBI connect('server1/dbname','username',...) failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var  or PATH (Windows) and or NLS settings, permissions, etc. at PerlDBFile1.pl line 10.
impossible de se connecter à server1 / dbname at PerlDBFile1.pl line 10, <DATA> line 1.

另外,如果我在服务器上运行env命令,则未列出变量$ORACLE_HOME (如果在具有标准PuTTY连接的服务器上运行相同的env命令,则存在$ORACLE_HOME变量。)

只需注意:通过我创建的任何一个PuTTY会话在服务器上运行任何其他Perl脚本(不会访问Oracle数据库)都可以正常工作。

任何帮助,不胜感激。

在PuTTY中设置远程命令时,它将跳过默认$HOME目录中存在的.bash_profile运行。 这就是为什么您得到错误。

若要解决此问题,请在您的perl目录中放置.bash_profile的副本,或在远程命令中添加命令以执行.bash_profile

好的,我有解决方案!...感谢所有答复。

基本上,我最初有以下命令:

cd ../home/code/project1/scripts/perl; / bin / bash(请参阅原始帖子)

为了使其正常工作,我将上述内容替换为

cd ../home/code/project1/scripts/perl; 来源〜/ .bash_profile; /斌/庆典

我也尝试过:

cd ../home/code/project1/scripts/perl; /斌/庆典; 来源〜/ .bash_profile

但这没有用。

希望这对某人有帮助。

Gauss76

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM