Most of us know the heredoc method but what if you need a basic query done repeatedly and manually while working from bash? It is a pain to manually type mysql and login each time.
With this command below you can semi-automate those queries:
echo "use somedb; select * from auctions" | mysql -u root --password="yourpassword"
Just modify the above to suit your needs and you can add more queries by adding a semi-colon ; after each and just typing a new query. Of course on the mysql command you will need to edit the user and password to suit your username and password.
Here is the longer heredoc version that is more flexible:
select * from auctions;
mysql -u user --password='yourpassword' << eof
use somedb;
eof
If you want to make the above more dynamic you could do this:
query="CREATE database $db;GRANT ALL on $db.* to $user@localhost IDENTIFIED by '$password'
"
mysql -u user --password='yourpassword' << eof
$query
eof
If you want to do the same thing with the piping you could make it like this:
query="CREATE database $db;GRANT ALL on $db.* to $user@localhost IDENTIFIED by '$password'
"
echo "$query" | mysql -u root --password="yourpassword"
mysql, bash, query, input, heredoc, trickmost, method, repeatedly, manually, login, semi, automate, queries, modify, adding, colon, typing, edit, user, password, username, flexible, yourpassword, eof, somedb, select, auctions, dynamic, quot, database, db, localhost, identified, piping, echo,