Quickstart: Integrate Azure Spring Apps with Azure Database for MySQL
Azure Spring Apps is the new name for the Azure Spring Cloud service. Although the service has a new name, you'll see the old name in some places for a while as we work to update assets such as screenshots, videos, and diagrams.
This article applies to: ✔️ Basic/Standard tier ❌ Enterprise tier
Pet Clinic, as deployed in the default configuration Quickstart: Build and deploy apps to Azure Spring Apps, uses an in-memory database (HSQLDB) that is populated with data at startup. This quickstart explains how to provision and prepare an Azure Database for MySQL instance and then configure Pet Clinic on Azure Spring Apps to use it as a persistent database with only one command.
An Azure account with an active subscription. Create an account for free.
Prepare an Azure Database for MySQL instance
Create an Azure Database for MySQL flexible server using the az mysql flexible-server create command. Replace the placeholders
<admin-password>with a name for your new database, the name of your resource group, a name for your new server, and an admin username and password.
az mysql flexible-server create \ --resource-group <resource-group-name> \ --name <MySQL-flexible-server-name> \ --database-name <database-name> \ --admin-user <admin-username> \ --admin-password <admin-password>
Standard_B1ms SKU is used by default. Refer to Azure Database for MySQL pricing for pricing details.
Password should be at least eight characters long and contain at least one English uppercase letter, one English lowercase letter, one number, and one non-alphanumeric character (!, $, #, %, and so on.).
A CLI prompt asks if you want to enable access to your IP. Enter
Connect your application to the MySQL database
Use Service Connector to connect the app hosted in Azure Spring Apps to your MySQL database.
The service binding feature in Azure Spring Apps is being deprecated in favor of Service Connector.
If you're using Service Connector for the first time, start by running the command az provider register to register the Service Connector resource provider.
az provider register --namespace Microsoft.ServiceLinker
az spring connection createcommand to create a service connection between Azure Spring Apps and the Azure MySQL database. Replace the placeholders below with your own information.
The name of the resource group that contains the app hosted by Azure Spring Apps.
The name of the Azure Spring Apps resource.
The name of the application hosted by Azure Spring Apps that connects to the target service.
The name of the resource group with the storage account.
The MySQL server you want to connect to
The name of the database you created earlier.
The MySQL server username.
The MySQL server password.
az spring connection create mysql-flexible \ --resource-group <Azure-Spring-Apps-resource-group-name> \ --service <Azure-Spring-Apps-resource-name> \ --app <app-name> \ --target-resource-group <mySQL-server-resource-group> \ --server <server-name> \ --database <database-name> \ --secret name=<username> secret=<secret>
az springcommand isn't recognized by the system, check that you have installed the Azure Spring Apps extension by running
az extension add --name spring.
Check connection to MySQL database
az spring connection validate command to show the status of the connection between Azure Spring Apps and the Azure MySQL database. Replace the placeholders below with your own information.
az spring connection validate --resource-group <Azure-Spring-Apps-resource-group-name> \ --service <Azure-Spring-Apps-resource-name> \ --app <app-name> \ --connection <connection-name>
The following output is displayed:
Name Result ------------------------------------------------------------- -------- The target existence is validated success The target service firewall is validated success The configured values (except username/password) is validated success
To get more details about the connection between your services, remove
--output table from the above command.
Clean up resources
If you plan to continue working with subsequent quickstarts and tutorials, you might want to leave these resources in place. When no longer needed, delete the resource group by using the az group delete command, which deletes the resources in the resource group. Replace
<resource-group> with the name of your resource group.
az group delete --name <resource-group>