0

Ubuntu bash mysql スクリプトは次のようになります

mysql -h localhost -u $MYSQLLOGIN -p$MYSQLROOTPASS  -t -e ' 
CREATE USER $USERNAME@'localhost' IDENTIFIED BY $MYSQLPASS;
create database $MYSQLDB;
grant usage on *.* to $USERNAME@localhost identified by $MYSQLPASS;
grant all privileges on $MYSQLDB.* to $USERNAME@localhost';

エラー メッセージの取得

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$MYSQLPASS' at line 1

実際、$MYSQLPASS は文字列コンテンツを持つ変数です。私がテストするとき、それは空ではありません。私は何を間違っていますか?

4

2 に答える 2

1

Bash スクリプトでは、文字列が で囲まれている場合、変数はその値に置き換えられません'"代わりに使用してみてください。

mysql -h localhost -u $MYSQLLOGIN -p$MYSQLROOTPASS  -t -e "
CREATE USER '$USERNAME'@'localhost' IDENTIFIED BY '$MYSQLPASS';
create database $MYSQLDB;
grant usage on *.* to '$USERNAME'@'localhost' identified by '$MYSQLPASS';
grant all privileges on $MYSQLDB.* to '$USERNAME'@'localhost';"
于 2013-10-13T10:34:59.617 に答える