Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一旦Terraform启动Mysql,就可以在Mysql中执行任何操作。如何运行RDS的provisioner?_Mysql_Amazon Web Services_Terraform_Rds - Fatal编程技术网

一旦Terraform启动Mysql,就可以在Mysql中执行任何操作。如何运行RDS的provisioner?

一旦Terraform启动Mysql,就可以在Mysql中执行任何操作。如何运行RDS的provisioner?,mysql,amazon-web-services,terraform,rds,Mysql,Amazon Web Services,Terraform,Rds,我已经使用terraform启动了一个RDS实例,现在我想在其中创建一个用户和DB,基本上,在其中运行一些查询。那么我们如何才能做到这一点呢 谢谢根据您想要更改的内容,有两个选项 您可以使用本地exec provisioner 基本上,您只需在aws\u db\u实例中添加类似的内容即可定义: provisioner "local-exec" { command = "your great command line!" } 请记住,此选项有一个很大的限制,provisioner仅在

我已经使用terraform启动了一个RDS实例,现在我想在其中创建一个用户和DB,基本上,在其中运行一些查询。那么我们如何才能做到这一点呢


谢谢

根据您想要更改的内容,有两个选项

  • 您可以使用本地exec provisioner
基本上,您只需在aws\u db\u实例中添加类似的内容即可定义:

provisioner "local-exec" {
    command = "your great command line!"
}
请记住,此选项有一个很大的限制,provisioner仅在第一次创建资源后执行一次

  • 您可以使用特定的Terraform提供程序,如MySQL或PostgreSQL
更多信息请点击此处:


如果要基于本地文件更改运行命令,另一种方法是使用在sql更改时触发的

resource "null_resource" "setup_db" {
  depends_on = ["aws_db_instance.my_db"] #wait for the db to be ready
  triggers = {
    file_sha = "${sha1(file("file.sql"))}"
  }
  provisioner "local-exec" {
    command = "mysql -u ${aws_db_instance.my_db.username} -p${var.my_db_password} -h ${aws_db_instance.my_db.address} < file.sql"
  }
}
resource“null\u resource”“setup\u db”{
dependens_on=[“aws_db_instance.my_db”]#等待数据库准备就绪
触发器={
file_sha=“${sha1(file(“file.sql”))}”
}
供应人“本地执行官”{
command=“mysql-u${aws\u db\u instance.my\u db.username}-p${var.my\u db\u password}-h${aws\u db\u instance.my\u db.address}