mysql_user does not find /root/.my.cnf

My ansible 2.9.10-1.el7 connects to the target machines as root.

On my target machines, I have /root/.my.cnf with a root password defined under the section [mysql].

Here is the playbook and response

  • hosts: databaseservers
    tasks:

  • name: add user to mysql
    mysql_user:
    name: “{{ name }}”
    host: “{{ item }}”
    password: “{{ password }}”
    encrypted: no
    priv: ‘.:ALL’
    login_unix_socket: /var/lib/mysql/mysql.sock
    state: present

with_items:

  • localhost
  • 127.0.0.1
  • ::1

and I get…

failed: [awsbeta.happysoftware.com] (item=localhost) => {“ansible_loop_var”: “item”, “changed”: false, “item”: “localhost”, “msg”: “unable to connect to database, check login_user and login_password are correct or /root/.my.cnf has the credentials. Exception message: (1045, u"Access denied for user ‘root’@‘localhost’ (using password: NO)")”}

Note that using password is NO.

Most of the posts here concern setting the root password. One fellow, from 2016, questioned on what path the .my.cnf needed to be. Since I log in as root, I figure it’s /root/.my.cnf.

My /root/.my.cnf is:

[mysql]
user=root
password=xxxxxxxxxxx
[mysqldump]
user=databasebackup
password=xxxxxxxxxxx

Do I need another section, perhaps? What else might be wrong?

Thanks,
Ed Greenberg

With Regards
Raju Das