Mysql Command Line Client: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 5: Line 5:
=Options=
=Options=


==-e, --execute=name==
==<tt>-e</tt>, <tt>--execute=name</tt>==


Execute command and quit.
Execute command and quit.
==<tt>-D</tt>, <tt>--database=name</tt>
Specify the database to use.


=Connect=
=Connect=
Line 45: Line 49:
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
mysql -u root -p<password> -e "SELECT VERSION()"
mysql -u root -p<password> -e "SELECT VERSION()"
</syntaxhighlight>
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>
</syntaxhighlight>

Latest revision as of 02:10, 30 December 2023

Internal

Options

-e, --execute=name

Execute command and quit.

==-D, --database=name

Specify the database to use.

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