MySQL Provider

MySQL is a relational database server. The MySQL provider exposes resources used to manage the configuration of resources in a MySQL server.

Use the navigation to the left to read about the available resources.

Example Usage

The following is a minimal example:

# Configure the MySQL provider
provider "mysql" {
    endpoint = "my-database.example.com:3306"
    username = "app-user"
    password = "app-password"

# Create a Database
resource "mysql_database" "app" {
    name = "my_awesome_app"

This provider can be used in conjunction with other resources that create MySQL servers. For example, aws_db_instance is able to create MySQL servers in Amazon’s RDS service.

# Create a database server
resource "aws_db_instance" "default" {
    engine = "mysql"
    engine_version = "5.6.17"
    instance_class = "db.t1.micro"
    name = "initial_db"
    username = "rootuser"
    password = "rootpasswd"
    # etc, etc; see aws_db_instance docs for more

# Configure the MySQL provider based on the outcome of
# creating the aws_db_instance.
provider "mysql" {
    endpoint = "${aws_db_instance.default.endpoint}"
    username = "${aws_db_instance.default.username}"
    password = "${aws_db_instance.default.password}"

# Create a second database, in addition to the "initial_db" created
# by the aws_db_instance resource above.
resource "mysql_database" "app" {
    name = "another_db"

Argument Reference

The following arguments are supported:

See the source of this document at Terraform.io