繁体   English   中英

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

[英]How to write and execute a shell script to create a mysql databse and a table

我在ubuntu中创建了一个.sh文件来创建和执行以下命令,我的.sh文件和以下mysql脚本位于同一文件夹中。 我手动创建了测试数据库,并分别创建并运行了脚本。

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

我找不到原因。 如果有人能帮助我将不胜感激

更新

在下一个会话中,我意识到终端无法识别mysql。 我意识到我很笨,只是总是做错事。 不要使用别名解析为二进制文件。

例如,请勿使用别名mysql =“ / Applications / MAMP / Library / bin / mysql”

代替

导出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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM