Crear base de datos en Shell Script – convertir desde PHP

Tengo el siguiente código PHP que utilizo para crear una base de datos, un usuario y conceder permisos al usuario:

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

Quiero realizar estas mismas acciones pero desde un script de shell. Es solo algo como esto:

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

EDITAR, ya que esto es necesario dentro de postwwwacct (un script de enganche de creación de cuenta de cPanel post) idealmente, será completamente autónomo

Debe escribir “MYSQL” en minúsculas y agregar un nombre de host después de -h y ha combinado comillas simples y dobles. Además, debe establecer los valores para dbname , dbuser y dbpass y usar mayúsculas consistentes:

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

Pero no estoy 100% seguro de su syntax SQL. Pensaría que se vería más así:

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

Sus citas y el uso de mayúsculas están un poco fuera de lugar (o sesgados en la plataforma), pero en esencia sí.

Es posible que desee considerar que su script cree un script sql, y luego hacerlo más fácil a través de php, shell (s!), Etc.