使用 PuTTY 连接后无法使用 Perl 脚本连接到 Linux Oracle 数据库
Cannot Connect to Linux Oracle Databse with Perl Script after connecting with PuTTY
我有以下问题:
我目前在我的 Windows 10 机器上使用 PuTTY 连接到我们的 Linux 服务器之一。如果我使用“标准”PuTTY 连接,我没有问题:我可以登录并 运行 我的 Perl 脚本来访问 Linux 服务器上的 Oracle 数据库。然而,最近我建立了一个新的 PuTTY 连接(我复制了上面使用的原始工作副本)。和原来唯一不同的是我在PuTTY配置window的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
没有列出(如果我运行相同env
使用标准 PuTTY 连接在服务器上执行命令 $ORACLE_HOME
变量存在。)
请注意:运行 服务器上的任何其他 Perl 脚本(不访问 Oracle 数据库)通过我创建的 PuTTY 会话都可以正常工作。
非常感谢任何帮助。
当您在 PuTTY 中设置远程命令时,它会跳过默认 $HOME
目录中存在的 .bash_profile
中的 运行。这就是您收到错误的原因。
要解决它,请将 .bash_profile
的副本放在您的 perl 目录中,或者添加一个命令以在远程命令
中执行 .bash_profile
好的,我有办法了!...谢谢大家的回复。
基本上,我原来有命令:
cd ../home/code/project1/scripts/perl; /bin/bash(见原文post)
为了使其正常工作,我将上面的内容替换为
cd ../home/code/project1/scripts/perl;来源 ~/.bash_profile; /bin/bash
我也试过:
cd ../home/code/project1/scripts/perl; /bin/bash;来源 ~/.bash_profile
但这没有用。
希望这对某人有所帮助。
高斯76
我有以下问题:
我目前在我的 Windows 10 机器上使用 PuTTY 连接到我们的 Linux 服务器之一。如果我使用“标准”PuTTY 连接,我没有问题:我可以登录并 运行 我的 Perl 脚本来访问 Linux 服务器上的 Oracle 数据库。然而,最近我建立了一个新的 PuTTY 连接(我复制了上面使用的原始工作副本)。和原来唯一不同的是我在PuTTY配置window的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
没有列出(如果我运行相同env
使用标准 PuTTY 连接在服务器上执行命令 $ORACLE_HOME
变量存在。)
请注意:运行 服务器上的任何其他 Perl 脚本(不访问 Oracle 数据库)通过我创建的 PuTTY 会话都可以正常工作。
非常感谢任何帮助。
当您在 PuTTY 中设置远程命令时,它会跳过默认 $HOME
目录中存在的 .bash_profile
中的 运行。这就是您收到错误的原因。
要解决它,请将 .bash_profile
的副本放在您的 perl 目录中,或者添加一个命令以在远程命令
.bash_profile
好的,我有办法了!...谢谢大家的回复。
基本上,我原来有命令:
cd ../home/code/project1/scripts/perl; /bin/bash(见原文post)
为了使其正常工作,我将上面的内容替换为
cd ../home/code/project1/scripts/perl;来源 ~/.bash_profile; /bin/bash
我也试过:
cd ../home/code/project1/scripts/perl; /bin/bash;来源 ~/.bash_profile
但这没有用。
希望这对某人有所帮助。
高斯76