Mysql Command Line Client: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 47: Line 47:
</syntaxhighlight>
</syntaxhighlight>


The command sends the result to stdout. If the select query produces no results, the stdout is the empty string.
The command sends the result to stdout. If the select query produces no results, the stdout is the empty string:
<syntaxhighlight lang='bash'>
local result
result=$(mysql -u root -p${database_root_password} -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='${database_name}'")
if [[ -n ${result} ]]; then
  echo "database exists"
else
  echo "database does not exist"
fi
</syntaxhighlight>

Revision as of 06:10, 30 March 2021

Internal

Options

-e, --execute=name

Execute command and quit.

Connect

mysql -u root -p

Will challenge for password.

mysql -u root -p<password>

No space after -p.

The username and password can also be stored in ~/.my.cnf:

[client]
user = root
password = XXXXXXXX

Scripting Database Interaction

mysql -u root -p<password> < statements.sql

where statements.sql should contain SQL:

SELECT VERSION();
...

Alternatively:

mysql -u root -p<password> -e "SELECT VERSION()"

The command sends the result to stdout. If the select query produces no results, the stdout is the empty string:

local result
result=$(mysql -u root -p${database_root_password} -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='${database_name}'")
if [[ -n ${result} ]]; then
  echo "database exists"
else 
  echo "database does not exist"
fi