2013-08-16 56 views
1

我在ubuntu中创建了一个.sh文件来创建并执行以下命令,我的.sh文件和下面的mysql脚本位于同一个文件夹中。我手动创建了测试数据库,并创建并单独运行了scirpt。 papol.sh如何编写并执行shell脚本来创建mysql数据库和表格

mysql -h localhost -u root -padmin < apple.sql 
mysql -h localhost -u root -padmin < getdb.sql 

内容,当我执行命令bash -x papol.sh它抛出我下面的错误

+ mysql -h localhost -u root -padmin 
: No such file or directoryapple.sql 
+ mysql -h localhost -u root -padmin 
: No such file or directorygetdb.sql 

我无法找到一个原因。我将不胜感激,如果有人能帮助

回答

2

更新

在我的下一个会议,我意识到MySQL的不是由终端的认可。我意识到自己很愚蠢,总是做错事。不要使用别名来解析二进制文件。

例如,不要使用别名的MySQL = “/应用程序/ MAMP /库/斌/ MySQL的”

相反

出口PATH = $ PATH:/应用/甲基苯丙胺/库/斌/

这将允许您通过bash适当地使用二进制文件,并且您还可以从终端访问所有的mysql二进制文件,包括mysqladmin等。 :)快乐的脚本!

示例脚本用适当的环境变量:

#!/bin/bash 

echo "" 
echo Reloading Database 
echo "" 
echo Using 
echo PROJECT_BUILD_HOME: $PROJECT_BUILD_HOME 
echo MYSQL: $(which mysql) 
echo PHP: $(which php) 
echo "" 
echo "" 

mysqladmin -u root -pmypass drop projectbuild 
mysqladmin -u root -pmypass create projectbuild 
gunzip < $PROJECT_BUILD_HOME/pack/projectbuild.sql.gz | mysql -u root -pmypass projectbuild 

老回答以下

我的mysql安装在我的用户的.profile作为别名的MySQL = “/路径/到/ MySQL的”。

相反,

我用mysql的出口= /路径/要/ MySQL的

而在我的bash脚本中,我使用MySQL的$。

cat /path/to/my/file | $mysql -h localhost -u root -padmin 
相关问题