【问题标题】:How to write and execute a shell script to create a mysql databse and a table如何编写和执行shell脚本来创建mysql数据库和表
【发布时间】:2013-08-18 18:40:25
【问题描述】:

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


    【解决方案1】:

    更新

    在下一次会话期间,我意识到终端无法识别 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 2022-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      相关资源
      最近更新 更多