如何编写和执行shell脚本来创建mysql数据库和表

时间:2013-08-16 11:08:15

标签: mysql shell ubuntu

我在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

我找不到理由。如果有人能提供帮助我将不胜感激

1 个答案:

答案 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