2015-11-02 58 views
1

创建MySQL用户通过我创建Ansible MySQL用户:创建无法连接与Ansible

- name: MySQL user has ALL THE PRIVILEGES (in order to connect remotely) 
    mysql_user: name="{{ database_user }}" password="{{ database_password }}" priv="*.*:ALL,GRANT" host="%" state=present 
    notify: restart MySQL 

- name: restart MySQL 
    service: name=mysql state=restarted 

用户,我能够从localhost连接,但不能从任何其他机器。

有趣的是,运行:

mysql> GRANT ALL PRIVILEGES ON *.* TO '{{ username }}'@'%' WITH GRANT OPTION; 

作为root MySQL用户然后允许从任何其它机器这些连接。

我已经通过运行在Mac OS 10.11上的brew安装了Ansible 1.9.4,在几个Ubuntu 14.04主机上转载了此内容。

如何正确指定mysql_user以启用来自任何主机的连接?

+0

你的第一块代码,使database_user = broomhilda,并运行该块。然后运行'select user,host,password from mysql.user where user ='broomhilda'' ...并在记事本中记下该信息。然后运行你的“有趣的”块,并做同样的事情。如你所知,主机='%'是任何主机,也许看看我写的[Here](http://stackoverflow.com/a/33478741)今天 – Drew

+0

,因为你在“有趣”块做的是创建一个超级用户,见[这里](http://stackoverflow.com/a/5016587) – Drew

+0

所以你可能已经在你的第一个块做的是创建一个用户主机<>'%'有本地主机访问,然后是下一个块的第二个用户。因为第二块,即使它是格兰特stmt,也创建用户! – Drew

回答

0

您可以通过查看mysql.user表来检查主机上创建的内容 - 用户名,密码或主机可能有问题。

添加用户后不需要重新启动MySQL守护进程。