【发布时间】:2023-04-03 15:56:01
【问题描述】:
我已经安装了 Oracle 11gR2 并想连接 SQL*Plus 但我不能。
我以 root 登录,然后将用户切换到 oracle
su oracle
我在 .bash_profile 中添加了所需的 Oracle 环境变量,但是当我从 root 切换到 oracle 用户时它没有执行。即使手动执行 bash 文件也不会使用以下命令导出变量
$ ./.bash_profile
这些是我.bash_profile的内容:
#!/bin/bash
#.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programsotp
PATH=$PATH:$HOME/bin
export PATH
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=orcl.genie.com; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
umask 022
【问题讨论】:
-
“我不能”没有帮助 - 您还没有说明您如何尝试连接或连接时会发生什么,包括您遇到的任何错误。
-
当我尝试连接为 sqlplus / as sysdba bash: sqlplus: command not found
-
您是否在login shell 中运行?您可以调试 .bash_profile 实际正在运行吗(例如,在其中粘贴一些 echo/printf 命令以查看显示的内容)?如果它正在运行,
env会为您设置的变量显示什么? -
如何检查我是否在登录 shell 中运行?即使在没有登录 shell 的情况下运行,为什么当我手动运行 .bash_profile as sh ./.bash_profile 时它没有执行
-
对于您刚刚添加的手动步骤,您必须获取文件:
. ./.bash_profile。