无法连接到通过ansible启动的MySQL docker容器

时间:2015-11-26 17:44:08

标签: mysql docker ansible

我得到了#34;访问被拒绝"尝试连接到我通过我的ansible脚本启动的MySQL Docker容器时出错。如果我使用Docker CLI工具创建容器,一切正常。我想知道这是否与环境变量有关。

这可行

$ docker run --name database -e MYSQL_ROOT_PASSWORD=hunter2 -d mysql:5.7

$ mysql -h $CONTAINER_IP_ADDRESS -u root -phunter2
$ mysql>

这已经破了

playbook.yml

- name: Start new MySQL container                                                  
  docker:                                                                          
    name: database                                                                   
    image: mysql:5.7                                               
    state: running                                                                 
    env:                                                                           
      MYSQL_ROOT_PASSWORD=hunter2

然后连接失败:

$ mysql -h $CONTAINER_IP_ADDRESS -u root -phunter2

ERROR 1045 (28000): Access denied for user 'root'@'$CONTAINER_IP_ADDRESS' (using password: YES)

知道我在这里失踪的是什么吗?

2 个答案:

答案 0 :(得分:1)

docker moduleenv定义应该是dict对象,而不是字符串

env:                                                                           
  MYSQL_ROOT_PASSWORD: hunter2

答案 1 :(得分:0)

过了一段时间后,我发现ansible与Docker的搭配并不好。我已经将一些基础架构从ansible转移到了Docker,并保留了一些遗留代码,例如将用户添加到mysql或转储dbs,这些代码都没有在Ansible中运行。

解决方案是使用shell代替:

{{1}}