Shell Script veritabanı oluşturma - PHP dönüştüğünde

2 Cevap php

Ben kullanıcıya bir veritabanı, kullanıcı ve hibe izinlerini oluşturmak için kullanabileceğiniz aşağıdaki PHP kodu vardır:

$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());

Ben bu aynı eylemleri gerçekleştirmek istiyorum ama bir kabuk içinde. Böyle bir şey var mı:

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;"

EDIT bu postwwwacct (cPanel sonrası hesap oluşturma kanca komut dosyası) içinde gerekli olduğu gibi, ideal olarak tamamen kendi kendine yeten olacak

2 Cevap

Siz "MYSQL"-küçük harfe ve -h sonra hostname eklemek gerekiyor ve tek ve çift tırnak karışık ettik. Ayrıca, dbname, dbuser ve dbpass için değerleri ayarlayın ve tutarlı harf kullanmak gerekir.:

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;"

Ama SQL sözdizimi% 100 emin değilim. Ben daha böyle bakmak düşünürdüm:

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;"

Sizin tırnak ve harf evet biraz kapalı (veya önyargılı platformu), ama özünde.

Eğer script php çalıştırmak yaparken, daha sonra bir sql komut dosyası oluşturmak olan aslında düşünebilirsiniz, kabuk (s!, vb) çok daha kolay olacaktır.