mysql 客户端在供应期间以不支持的参数退出

mysql client exits with unsupported argunent during provisioning

我有一个 TF 脚本,它使用 amazon linux 部署一个 ec2 实例并安装 mariadb x86_64 1:5.5.62-1.amzn2.0.1。我希望在仅具有私有访问权限的 aurora 5.7 RDS 上自动创建数据库和用户。

问题是,在提供程序内联执行期间,我发出的每个 mysql 命令 returns 都出现错误:

aws_instance.instance (remote-exec): mysql: unknown option '--print-defaults'

通过 ssh 来自实例的相同命令 运行 工作正常。

resource "aws_instance" "instance" {
    ami                         = "ami-0c3fd0f5d33134a76" #data.aws_ami.ami.id
    availability_zone           = local.az
    ebs_optimized               = var.instance_config.ebs_optimized
    instance_type               = var.instance_config.type
    monitoring                  = var.instance_config.monitoring
    key_name                    = var.instance_config.key_name
    subnet_id                   = local.subnet_id
    vpc_security_group_ids      = local.security_groups
    associate_public_ip_address = var.instance_config.associate_public_ip_address
    source_dest_check           = var.instance_config.source_dest_check
    iam_instance_profile        = aws_iam_instance_profile.profile.name

    root_block_device {
        volume_type           = var.instance_config.volume_type
        volume_size           = var.instance_config.volume_size
        delete_on_termination = var.instance_config.delete_on_termination
    }

    connection {
        host     = self.public_ip
        type     = "ssh"
        user     = "ec2-user"
        private_key = file(var.instance_config.private_key_path)
    }

    provisioner "remote-exec" {
        inline = local.commands  ### mysql commands are here
    }

}

mysql 命令就像

nmysql -h XXX.rds.amazonaws.com -u XXX -pXXX -e "CREATE DATABASE IF NOT EXISTS test;"

我试过内联执行,创建一个脚本然后执行它,客户端的 --no-defaults 选项,创建 ~/.my.cnf 有同样的问题。 我真的很想避免手动登录以创建数据库并将 RDS 打开到 public...

更新: 我在 script/commands 中没有--print-defaults。我还对整个文件系统进行了 grep,以寻找亚马逊中的一些默认设置 linux...还在配置程序执行期间和 ssh 连接后检查了环境变量,但我没有发现任何差异

谢谢

我最终得到了一个 nodejs 脚本,它执行 mysql 数据库设置并且工作正常:)