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:

  • 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.

© 2018 HashiCorpLicensed under the MPL 2.0 License.