- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
脚本的最后一行未执行。
我尝试在创建的实例上手动执行代码,并且成功了。
#!/bin/bash
#install tools
apt-get update -y
apt-get install mysql-client -y
#Create MySQL config file
echo "[mysql]" >> ~/.my.cnf
echo "user = poc5admin" >> ~/.my.cnf
echo "password = poc5password" >> ~/.my.cnf
#test
echo "endpoint = ${rds_endpoint}" >> ~/variables
hostip=$(hostname -I)
endpoint=${rds_endpoint}
echo "$hostip" >> ~/variables
#I have created a table here but I will remove the code since it is unnecessary...
#Create User
echo "CREATE USER 'poc5user'@'%' IDENTIFIED BY 'poc5pass';" >> ~/mysqlscript.sql
echo "GRANT EVENT ON * . * TO 'poc5user'@'%';" >> ~/mysqlscript.sql
cp mysqlscript.sql /home/ubuntu/mysqlscript.sql
mysql -h $endpoint -u poc5admin < ~/mysqlscript.sql
预期结果:RDS 实例上应该创建数据库、表和用户。
最佳答案
您可以从 bash 脚本插入或创建这样的数据库,但不推荐使用 RDS 的方法。最好将数据放在 s3 和 import from the s3 上。
这是创建数据库的示例
resource "aws_db_instance" "db" {
allocated_storage = 20
storage_type = "gp2"
engine = "mysql"
engine_version = "5.7"
instance_class = "db.t2.micro"
name = "mydb"
username = "foo"
password = "foobarbaz"
parameter_group_name = "default.mysql5.7"
s3_import {
source_engine = "mysql"
source_engine_version = "5.6"
bucket_name = "mybucket"
bucket_prefix = "backups"
ingestion_role = "arn:aws:iam::1234567890:role/role-xtrabackup-rds-restore"
}
}
~/.my.cnf
为什么你需要这个?最好将这些脚本放在 s3 文件中。
第二件事,如果您仍然有兴趣从本地环境运行,那么您可以从local-exec
插入
resource "null_resource" "main_db_update_table" {
provisioner "local-exec" {
on_failure = "fail"
interpreter = ["/bin/bash", "-c"]
command = <<EOT
mysql -h ${aws_rds_cluster.db.endpoint} -u your_username -pyour_password your_db < mysql_script.sql
EOT
}
}
但最好使用 s3。
如果您想从远程导入,可以探索remote-exec
。
使用用户数据,您可以执行此操作,但您的 MySQL 脚本似乎无法正确生成。最好将脚本cp到远程,然后在远程使用本地exec运行。
关于mysql - 如何在terraform user_data上执行mysql脚本插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57917710/
我正在使用 Terraform 来启动一个 Ec2 实例,我想在其中执行一些命令。 我在 aws_instance 资源的 user_data 中放置了一个 bash 文件,但该文件未执行。 ...
我在我的 Terraform 脚本中提供了一个 .sh 文件作为 user_data: resource "aws_instance" "alpha-terraform"{ ami=var.a
您好 EC2 实例已创建,但作为 userdata.sh 一部分的命令未得到执行。当我通过 putty 手动连接到 EC2 时,我发现 EC2 实例中未安装 nginx。为了验证脚本是否正在执行,我添
我正在尝试使用一个通用的 user_data 文件来执行常见任务,例如文件夹创建和某些包安装,并使用一个单独的 user_data 文件来执行应用程序特定的配置 我正在尝试以下 - user_data
我在运行时根据所选句子中的单词从 TreeView 中右键单击创建弹出式上下文菜单。代码: //---- inpropper ------------ gboolean menu_RELEASE(Gt
我如何转换 void *something到标准 C++ 中的对象?具体我想投 void *userdata至 std::map 这可能吗?我正在尝试: //void *user_data is a
将多个模板文件分配给 user_Data 变量。 由于某些架构模式,我们不想将此模板合并到单个文件中。 我是 terraform 的新手,所以在这方面很挣扎。 data "template_file"
我正在使用 libusb-1.0 将 BLE 加密狗与 RCU 配对。 为此,我成功地将配对请求写入加密狗接口(interface)。为了收听加密狗响应,我使用函数 libusb_fill_inter
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
当我在 CodeIgniter 中运行 var_dump($this->session->all_userdata()); 它打印 array (size=5) 'session_id' => s
如果传递给 user_data 的脚本无法运行,是否有可能使 aws_instance 创建失败?例如,退出 1? 我有一个使用depends_on [aws_instance.myVM] 将JSON
我创建 user_data 是这样的: bool MyTreeModel::iter_nth_root_child_vfunc (int index, iterator & iter) const {
当使用 Terraform(或云形成)启动 EC2 时,我们可以通过将一些脚本放在 user_data/remote-exec 中来配置 EC2。或者,我们可以使用 Ansible/Chef 等配置
我正在使用 Terraform 启动 ECS 集群。 我正在使用其他人编写的脚本。除了这一点,我了解大部分启动配置脚本: 我试图找到自动缩放组和 ECS 集群之间的链接。 我有一个 aws_autos
因此,我尝试使用 Packer 创建 AWS 镜像并通过 user_data_file 指定一些用户数据。该文件的内容需要在实例启动时运行,因为它每次都是唯一的。我不能把它烤到 AMI 中。 使用pa
我正在使用 terraform 启动 aws_launch_configuration 实例。 我正在为 user_data 变量使用 shell 脚本,如下所示: resource "aws_lau
我使用 codeigniter 创建了一个带有管理区域和用户区域的站点。但管理员和用户不能同时登录。因为 session user_data 只能使用一次。那么我怎样才能保存另一个 session 数
我正在尝试安装在磁盘上的 CoreOS(410.0.0 稳定版)cloud-config .第一次启动时一切正常,但几天后重新启动后,etcd 出现了问题。 当我启动机器时,输出会生成如下消息: Fa
启动 EC2 时,我可以在 user_data 字段中包含带参数的脚本文件吗?如: user_data = "${file("install_software.sh"), user_name pass
所以我关注了reference如何使用 LowLevelCallable。问题是,我显然无法像以前那样将参数传递给 dblquad 函数(这会破坏我想要加速的所有代码)。我的 C 代码如下所示: #i
我是一名优秀的程序员,十分优秀!