--- layout: "mysql" page_title: "Provider: MySQL" sidebar_current: "docs-mysql-index" description: |- A provider for MySQL Server. --- # MySQL Provider [MySQL](http://www.mysql.com) 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.