У меня есть следующий 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());
Я хочу выполнить эти же действия, но из сценария оболочки. Это что-то вроде этого:
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, поскольку это необходимо в postwwacct (скрипт создания учетной записи cPanel post), в идеале он будет полностью автономным
Вам нужно использовать нижний регистр «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;"
Но я не уверен на 100% в синтаксисе SQL. Я бы подумал, что это будет выглядеть примерно так:
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!) И т. Д. Будет намного проще.