gpt4 book ai didi

mysql - 在 Terraform 中使用 Bash 连接到 MySQL 失败但通过 SSH 工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:35 29 4
gpt4 key购买 nike

我在创建 CentOS 服务器期间通过 Terraform 运行以下 bash 脚本。

"sudo docker run -d --restart=unless-stopped --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=${var.mysql_root_password} mysql",
"sudo yum -y install mysql",
"mysql -u root -p${var.mysql_root_password} -h 127.0.0.1"

但是MySQL命令失败,输出如下

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

但是,如果我通过 SSH 连接到服务器,我可以运行 mysql 命令并成功连接到 MySQL。

我缩短了上面的 mysql 命令以简化我的问题。我试图使用此命令连接到 MySQL 实例并创建用户和数据库。作为 docker run 命令的一部分,我通过环境变量传递我想创建的用户名和数据库,设法让它工作。但是,我很想知道为什么上述内容无法通过 Terraform 工作,但在我通过 SSH 连接到服务器时却可以工作。

干杯

克里斯

最佳答案

您需要等待。启动数据库容器并等待服务准备就绪。

"sudo docker run -d --restart=unless-stopped --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=${var.mysql_root_password} mysql",
"sudo yum -y install mysql",
sleep 180
"mysql -u root -p${var.mysql_root_password} -h 127.0.0.1"

关于mysql - 在 Terraform 中使用 Bash 连接到 MySQL 失败但通过 SSH 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462032/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com