Set up MySQL as a user-provided service

This document guides you through binding your App to a MySQL instance not listed in the Kf marketplace (including Cloud SQL for MySQL ) with the Spring Cloud Foundry Connector. This results in the MySQL credentials being injected into the App, just like binding to services provisioned through marketplace plans.

Before you begin

  • Ensure you have MySQL installed and accessible by your Kf cluster.
  • Ensure the database for your App has already been created.
  • Ensure you have targeted the Space running your App.

Create the user-provided instance

For Kf to successfully bind an App to your MySQL instance, the minimum environment variable is the URI (for example mysql://username:password@host:port/dbname ). Additional key-value pairs may be included if desired. The MySQL documentation can help with creating a URI string.

The following example should be sufficient for basic deployments:

 kf  
cups  
 service-instance-name 
  
-p  
 '{"username":" username 
", "password":" password 
", "uri":"mysql:// username 
: password 
@ mysql-host 
: 3306 
/ database 
"}' 
  
-t  
 "mysql" 
 

Bind your App

Now that the user-provided service has been created, you can bind your App to the instance name:

 kf  
bind-service  
 application-name 
  
 service-instance-name 
 

Restart your App for the changes to take effect:

 kf  
restart  
 application-name 
 

Confirm the new environment variables being provided to your App:

 kf  
vcap-services  
 application-name 
 

Update the user-provided instance

If there are changes to the environment (for example password or host update in the URI, or the addition of new key-value pairs) that need to be passed on to any App bound to it, you can update the user-provided instance:

 kf  
uups  
 service-instance-name 
  
-p  
 '{"uri":" new-uri 
", " some-new-key 
": " some-new-value 
"}' 
 

What's next

Design a Mobile Site
View Site in Mobile | Classic
Share by: