ich versuche gerade mir via Script eine DB zu erstellen. Im Script wird u.a. der gewünschte DB User, der Name der DB und das gewünschte Passwort abgefragt.
Code: Alles auswählen
read -p "DB-Name: " dbname
read -p "DB-Benutzer: " dbuser
read -p "DB-Passwort: " dbpasswd
Code: Alles auswählen
mysql -u root <<-EOF
CREATE USER '$dbuser'@'localhost' IDENTIFIED BY '$dbpasswd';
CREATE DATABASE IF NOT EXISTS '$dbname' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
FLUSH PRIVILEGES;
Beim zweiten SQL Statement (dem Anlegen der DB) erhalte ich dann:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''nc4' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci' at line 1
Wobei das nc4 von der Variable $dbname kommt.
Kann mir eventuell jemand sagen, weshalb es hier zu diesem Fehler kommt?
Danke!
EDIT:
So scheint es zu funktionieren, obwohl mir nicht ganz klar ist, weshalb man die geschwungenen Klammern braucht...
Code: Alles auswählen
mysql -u root <<-EOF
CREATE DATABASE IF NOT EXISTS ${dbname} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER '${dbuser}'@'localhost' IDENTIFIED BY '${dbpasswd}';
GRANT ALL ON ${dbname}.* to "${dbuser}"@"localhost";
FLUSH PRIVILEGES;
EOF