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 = ""
    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:

  • endpoint - (Required) The address of the MySQL server to use. Most often a "hostname:port" pair, but may also be an absolute path to a Unix socket when the host OS is Unix-compatible.
  • username - (Required) Username to use to authenticate with the server.
  • password - (Optional) Password for the given user, if that user has a password.