【问题标题】:Create database in Shell Script - convert from PHP在 Shell 脚本中创建数据库 - 从 PHP 转换
【发布时间】:2011-02-15 20:55:16
【问题描述】:

我有以下 PHP 代码,用于创建数据库、用户并授予用户权限:

$con = mysql_connect("IP.ADDRESS","user","pass");
mysql_query("CREATE DATABASE ".$dbuser."",$con)or die(mysql_error());
mysql_query("grant all on ".$dbuser.".* to  ".$dbname." identified by '".$dbpass."'",$con) or die(mysql_error());

我想在 shell 脚本中执行这些相同的操作。是不是就是这样:

MyUSER="user"
MyPASS="pass"
MYSQL -u $MyUSER -h -p$MyPASS -Bse "CREATE DATABASE $dbuser;"
MYSQL -u $MyUSER -h -p$MyPASS -Bse "GRANT ALL ON $DBUSER.* to  $DBNAME identified by $DBPASS;"

编辑,因为这是在 postwwwacct(一个 cPanel 发布帐户创建挂钩脚本)中需要的,理想情况下它将是完全独立的

【问题讨论】:

    标签: php mysql shell


    【解决方案1】:

    您需要将“MYSQL”小写并在-h 之后添加主机名,并且您已混合使用单引号和双引号。此外,您需要设置dbname、dbuser 和dbpass 的值并使用一致的大小写。:

    MyUSER="user"
    MyPASS="pass"
    HostName="host"
    dbName="dbname"
    dbUser="dbuser"
    dbPass="dbpass"
    
    mysql -u $MyUSER -h $HostName -p$MyPASS -Bse "CREATE DATABASE $dbUser;"
    mysql -u $MyUSER -h $HostName -p$MyPASS -Bse "GRANT ALL ON ${dbUser}.* to $dbName identified by $dbPass;"
    

    但我对您的 SQL 语法并不是 100% 有信心。我认为它看起来更像这样:

    mysql -u $MyUSER -h $HostName -p$MyPASS -Bse "CREATE DATABASE $dbName;"
    mysql -u $MyUSER -h $HostName -p$MyPASS -Bse "GRANT ALL ON ${dbName}.* to $dbUser identified by $dbPass;"
    

    【讨论】:

    • 我发现在本地环境中创建一次性数据库和用户时这很有用,只需再添加一行:mysql -u $MyUSER -p$MyPASS -Bse "SET PASSWORD FOR '$1'@'$1' = PASSWORD('$1');"。我也将这个答案中的其他两行更改为 $1 参数。当然,我在这里为一次性 local 环境使用了一个参数。 本地.
    【解决方案2】:

    您的引号和大小写有点偏离(或平台偏向),但本质上是的。

    你可能想考虑让你的脚本创建一个 sql 脚本,然后让它通过 php、shell(s!) 等运行会容易得多。

    【讨论】:

    • 我第二次使用 SQL 脚本。看看 dbdeploy 和 phing davedevelopment.co.uk/2008/04/14/…
    • 理想情况下我会将它保存在这个脚本中,它是从 postwwwacct(一个 cpanel 发布帐户创建脚本)运行的,所以理想情况下它是完全独立的
    • @Unreason 能否告诉我引号和大写字母在哪里,以便我修复它们
    • .. 或举例说明它创建 SQL 脚本并执行该脚本。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多