2015-11-02 57 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守護進程。