我在ubuntu中创建了一个.sh文件,用于创建和执行以下命令,我的.sh文件和以下mysql脚本位于同一个文件夹中。我手动创建了测试数据库,我创建并单独运行了scirpts。
papol.sh的内容
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
我找不到理由。如果有人能提供帮助我将不胜感激
答案 0 :(得分:2)
<强>更新强>
在我的下一个会话期间,我意识到终端无法识别mysql。我意识到我是愚蠢的,而且总是做错事。不要使用别名来解析为二进制文件。
示例,不要使用别名mysql =“/ Applications / MAMP / Library / bin / mysql”
相反
export PATH = $ PATH:/ Applications / MAMP / Library / bin /
这将允许您通过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
下面的旧答案
我在我的用户.profile中设置了mysql作为别名mysql =“/ path / to / mysql”。
相反,
我使用export mysql = / path / to / mysql
在我的bash脚本中,我使用了$ mysql。
实施例
cat /path/to/my/file | $mysql -h localhost -u root -padmin