Quickstart: Connect with Azure Database for MySQL - Flexible Server by using Azure CLI
This quickstart demonstrates how to connect to Azure Database for MySQL flexible server using Azure CLI with az mysql flexible-server connect
and execute single query or sql file with the az mysql flexible-server execute
command. This command allows you test connectivity to your database server and run queries. You can also run multiple queries using the interactive mode.
Prerequisites
- An Azure account with an active subscription.
If you don't have an Azure subscription, create an Azure free account before you begin. Currently, with an Azure free account, you can try Azure Database for MySQL - Flexible Server free for 12 months. For more information, see Use an Azure free account to try Azure Database for MySQL - Flexible Server for free.
- Install Azure CLI latest version (2.20.0 or higher)
- Log in using Azure CLI with the
az login
command - Turn on parameter persistence with
az config param-persist on
. Parameter persistence helps you use local context without having to repeat numerous arguments like resource group or location.
Create a MySQL Flexible Server
The first thing to create is a managed Azure Database for MySQL flexible server instance. In Azure Cloud Shell, run the following script and make a note of the server name, username and password generated from this command.
az mysql flexible-server create --public-access <your-ip-address>
You can provide more arguments for this command to customize it. See all arguments for az mysql flexible-server create.
Create a database
Run the following command to create a database, newdatabase
if you haven't already created one.
az mysql flexible-server db create -d newdatabase
View all the arguments
You can view all the arguments for this command with --help
argument.
az mysql flexible-server connect --help
Test database server connection
Run the following script to test and validate the connection to the database from your development environment.
az mysql flexible-server connect -n <servername> -u <username> -p <password> -d <databasename>
Example:
az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase
You should see the following output for successful connection:
Command group 'mysql flexible-server' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.
If the connection failed, try these solutions:
- Check if port 3306 is open on your client machine.
- If your server administrator user name and password are correct
- If you have configured firewall rule for your client machine
- If you have configured your server with private access in virtual networking, make sure your client machine is in the same virtual network.
Run multiple queries using interactive mode
You can run multiple queries using the interactive mode. To enable interactive mode, run the following command
az mysql flexible-server connect -n <server-name> -u <username> -p <password> --interactive
Example:
az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase --interactive
You can see the MySQL shell experience as shown below:
Command group 'mysql flexible-server' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Password:
mysql 5.7.29-log
mycli 1.22.2
Chat: https://gitter.im/dbcli/mycli
Mail: https://groups.google.com/forum/#!forum/mycli-users
Home: http://mycli.net
Thanks to the contributor - Martijn Engler
newdatabase> CREATE TABLE table1 (id int NOT NULL, val int,txt varchar(200));
Query OK, 0 rows affected
Time: 2.290s
newdatabase1> INSERT INTO table1 values (1,100,'text1');
Query OK, 1 row affected
Time: 0.199s
newdatabase1> SELECT * FROM table1;
+----+-----+-------+
| id | val | txt |
| +----+-----+-------+ |
| 1 | 100 | text1 |
| +----+-----+-------+ |
| 1 row in set |
| Time: 0.149s |
| newdatabase>exit; |
Goodbye!
Run Single Query
Run the following command to execute a single query using --querytext
argument, -q
.
az mysql flexible-server execute -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"
Example:
az mysql flexible-server execute -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table
You can see an output as shown below:
Command group 'mysql flexible-server' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Successfully connected to mysqldemoserver1.
Ran Database Query: 'select * from table1;'
Retrieving first 30 rows of query output, if applicable.
Closed the connection to mysqldemoserver1
Txt Val
----- -----
test 200
test 200
test 200
test 200
test 200
test 200
test 200
Run SQL File
You can execute a sql file with the command using --file-path
argument, -q
.
az mysql flexible-server execute -n <server-name> -u <username> -p "<password>" -d <database-name> --file-path "<file-path>"
Example:
az mysql flexible-server execute -n mysqldemoserver -u dbuser -p "dbpassword" -d flexibleserverdb -f "./test.sql"
You can see an output as shown below:
Command group 'mysql flexible-server' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Running sql file '.\test.sql'...
Successfully executed the file.
Closed the connection to mysqldemoserver.