我的ubuntu VM上有一个shell脚本文件(Oracle_UserData.sh)(如下所示),
#!/bin/bash
echo "login to oracle 11g as sys"
chmod -R 755 /u01/app/oracle/product/11.2.0/xe
/u01/app/oracle/product/11.2.0/xe/bin/sqlplus -S sys/password as sysdba <<EOF
create user $USER identified by $PASSWORD;
grant all privileges to $USER;
exit;
EOF
我有另一个以root身份运行的脚本文件,它会触发上一个脚本文件运行。 (它以root身份运行,因为我将脚本作为Amazon EC2用户数据的一部分传递)。
#!/bin/bash
export USER=root
export PASSWORD=password
cd "/home/ubuntu/"
sh Oracle_UserData.sh
output: {all: '| tee -a /var/log/cloud-init-output.log'}
我正在尝试通过运行这些脚本来创建新的db用户,但它失败了。我不确定是不是因为root用户无法访问环境变量或其他问题?我收到了错误
Error 6 initializing SQL*Plus
我尝试通过导出这些环境变量作为局部变量(ORACLE_HOME,ORACLE_BASE,ORACLE_SID),我得到了错误
ORA-12547: TNS:lost contact
(如果我只是将这个脚本作为本地文件,并在本地作为Ubuntu运行,它可以正常工作。用户可以毫无问题地创建。)
有人可以帮忙吗?
答案 0 :(得分:1)
我通过以下链接解决了问题, http://www.dadbm.com/how-to-fix-ora-12547-tns-lost-contact-when-try-to-connect-to-oracle/
cd $ORACLE_HOME/bin
ls -ltr oracle
-rwxr-xr-x 1 oracle oinstall 136803483 Mar 16 20:32 oracle
chmod 6751 oracle
ls -ltr oracle
-rwsr-s--x 1 oracle oinstall 136803483 Mar 16 20:32 oracle