Linux下用Shell创建DB2数据库解决思路
Linux下用Shell创建DB2数据库
代码如下
现在发现我可以切换到 db2inst1用户下,也可以将目录改为/data/createdb 但是没办法执行后面的db2命令。
我必须更改目录到/data/createdb/下,因为“db2 -tvf TeatTables.sql”需要用到改目录下的很多文件。
请高手帮帮忙解决一下,既能切换用户,在新用户下更改目录,并执行新目录下的db2命令
------解决方案--------------------
su - db2inst1
会执行下面db2inst1下的。profile环境
------解决方案--------------------
因为linux下,不同的用户,会执行不同的环境,就是执行这个用户的.profile。所以,你需要su到数据库的用户下,或者先source一下db2用户的.profile文件,设置环境变量。
------解决方案--------------------
su - db2inst1 <<eof
cd /data/createdb
db2 create db test
db2 connect to test
db2 -tvf TestTables.sql
eof
用这个试一下,脚本文件在root用户下操作。
代码如下
- Java code
su db2inst1 ; cd /data/createdb -c "db2 create db test; db2 connect to test; db2 -tvf TestTables.sql"
现在发现我可以切换到 db2inst1用户下,也可以将目录改为/data/createdb 但是没办法执行后面的db2命令。
我必须更改目录到/data/createdb/下,因为“db2 -tvf TeatTables.sql”需要用到改目录下的很多文件。
请高手帮帮忙解决一下,既能切换用户,在新用户下更改目录,并执行新目录下的db2命令
------解决方案--------------------
su - db2inst1
会执行下面db2inst1下的。profile环境
------解决方案--------------------
因为linux下,不同的用户,会执行不同的环境,就是执行这个用户的.profile。所以,你需要su到数据库的用户下,或者先source一下db2用户的.profile文件,设置环境变量。
------解决方案--------------------
su - db2inst1 <<eof
cd /data/createdb
db2 create db test
db2 connect to test
db2 -tvf TestTables.sql
eof
用这个试一下,脚本文件在root用户下操作。