Today, we’re announcing a cool new feature (in preview) for Web developers using Azure App Service to create Web applications that use MySQL. MySQL in-app enables developers to run the MySQL server side-by-side with their Web application within the same environment, which makes it easier to develop and test PHP applications that use MySQL.
We’re also making it very easy to get started with this feature via the Azure portal. During the creation of your Web App, you’ll be able to select a “MySQL in-app (preview)” provider for your database, which will help provision the database.
We think this feature will be very welcome by Web developers who are looking to accelerate their testing because:
- It supports many PHP applications that use MySQL, such as WordPress, Joomla, and Drupal.
- It’s cost-effective since there’s no additional cost to use this feature and you only pay for the App Service plan (since resources are shared).
- The MySQL and Web processes are co-located in the same environment (hence the term in-app) which means storage is shared.
- Includes support for slow query logging and general logging, which you’ll need to turn on as needed (this feature impacts performance, so you shouldn’t use it all the time).
Since this feature is in preview, and shares its resources with the Web application in the same App Service plan, MySQL in-app is not recommended for production applications. Please also keep in mind the following tips and limitations when using this feature:
- Check your storage limits and upgrade the web app pricing plan as needed to accommodate data for both MySQL and your web app. For storage and memory limits for your pricing tier, review the quota limitations for all App Service plans pricing tiers.
- Note you only get one MySQL database per web application. In a scenario where you have a deployment slot web app and a production web app, you will get one MySQL database for the deployment slot and one MySQL database for the production web app, if you decide to turn on this feature for each app. The database contents will not be synchronized, which makes it easier for you to try different schema versions and content.
- The auto scale feature is not supported since MySQL currently runs on a single instance. Similarly, enabling local cache is not supported.
- The MySQL database cannot be accessed remotely using the MySQL CLI or other tools that access external endpoints. You can only access your database content using PHPMyAdmin (which is bootstrapped upon provisioning) or using the KUDU debug console.
The team continues working with Web developers in improving their experience in Azure App Service, particularly when it comes to data solutions. Over the last few months, we’ve come a long way in our data solution portfolio for Web developers, including revamping our PHP client drivers for Azure SQL, a new version of the JDBC drivers, expanded support for Linux on our ODBC drivers, MongoDB protocol support in DocumentDB and, earlier this week, an early technical preview of the new PHP on Linux SQL Server drivers. We will continue working on more data solutions that make it easier for Web developers to bring great applications to market in Microsoft Azure, whatever the language, stack, and platform.
If you’re using MySQL in-app for development and testing and you are interested in migrating this application to production, Azure offers many solutions, including:
- ClearDB Database
- ClearDB Clusters
- Marketplace solutions for MySQL, MariaDB, and other MySQL-compatible solutions from partners like Bitnami and MariaDB
- Community-contributed Azure Resource Manager (ARM) templates deploying on VMs
- MySQL on virtual machine on Linux or Windows OS
We hope you get started with MySQL in-app in Azure App Service today, and share with us your feedback. Don't have a subscription? Sign up for a free trial! And if you’re interested in getting more details about this feature, make sure you check out the detailed blog post.