创建Shell脚本数据库 - 从PHP
我有我用它来创建一个数据库,一个用户,并授予用户下面的PHP代码:创建Shell脚本数据库 - 从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后帐户创建钩子脚本)理想这将是完全独立的
您需要小写“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;"
你的报价和资本是一个(或平台偏见),但实质上是。
您可能想要考虑实际让您的脚本创建一个sql脚本,然后使其通过php,shell(s!)等运行将会更容易。
我第二次使用SQL脚本。看看一个dbdeploy和phing http://www.davedevelopment.co.uk/2008/04/14/how-to-simple-database-migrations-with-phing-and-dbdeploy/ – Gordon 2010-05-05 10:36:53
理想情况下,我会保持它这一个脚本,它从postwwwacct(一个cpanel邮政帐户创建脚本)运行如此理想,它将完全独立 – robjmills 2010-05-05 10:47:18
@Unreason可以让我知道报价和上限在哪里,所以我可以修复它们请 – robjmills 2010-05-05 12:05:24
当我在本地环境中创建一个一次性数据库和用户时,发现这很有用,只需要再添加一行: 'mysql -u $ MyUSER -p $ MyPASS -Bse“为'$ 1'设置密码@'$ 1' =密码('$ 1');“'。我在这个答案中改变了另外两条线,也就是'$ 1'的参数。当然,我在这里为一次性**本地**环境使用了一个参数。 **本地**。 – cdmo 2013-08-30 20:44:50