Odpowiedzi:
@ Odpowiedź Nitrodist zadziała, ale problem jest nadmiernie zaprojektowany. Klient wiersza poleceń MySQL obsługuje bardzo przydatny -e
przełącznik, taki jak:
mysql -uroot -e "create database 'foo'"
Możesz oczywiście zastąpić tam dowolny poprawny kod SQL.
mysql -uroot -e "create database foo"
ERROR 1064 (42000) at line 1: 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 ''foo'' at line 1
. Bez nich działa dobrze. Dzięki @IanVaughan
Zgodnie z dokumentacją MySQL, mysql
można pobierać polecenia zstdin
shell> mysql -uroot < script.sql > output.tab
Aby to zrobić, możesz użyć procesu podstawienia :
shell> mysql -uroot <(echo "create database mydatabase;")
lub można po prostu go do rury stdin
z mysql
normalnie:
shell> echo "create database mydatabase;" | mysql -uroot
Nie mogę przetestować tego osobiście, ale myślę, że to powinno zadziałać.
Edycja: Inną opcją jest użycie -e
określonej tutaj opcji, tak jak poniżej :
shell> mysql -uroot -e "create database mydatabase;"