首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Terraform中使用Bash连接到MySQL失败,但可以通过SSH工作

在Terraform中使用Bash连接到MySQL失败,但可以通过SSH工作
EN

Stack Overflow用户
提问于 2017-08-02 21:18:48
回答 1查看 110关注 0票数 1

在创建CentOS服务器的过程中,我通过Terraform运行以下bash脚本。

代码语言:javascript
复制
"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命令失败,输出如下

代码语言:javascript
复制
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连接到服务器时却能工作。

干杯

克里斯

EN

回答 1

Stack Overflow用户

发布于 2017-08-03 12:56:39

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

代码语言:javascript
复制
"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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45462032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档