问题:
在重新安装mariadb 10.4之后,无法使用ansible设置根密码。
当由mariadb (不是官方debian包)从debian包中安装mariadb时,root的密码是空的,并且可以从本地主机进行无密码登录。
尽管如此,ansible mysql_user仍然抛出了以下错误:
failed: [XXX] (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: (1698, \"Access denied for user 'root'@'localhost'\")"}
发布于 2020-08-28 14:02:24
我们需要将login_unix_socket: /var/run/mysqld/mysqld.sock添加到任务中:
- name: update mysql root password for root account
mysql_user:
name: root
login_unix_socket: /var/run/mysqld/mysqld.sock
host: 'localhost'
password: '{{ mysql_root_password }}'
priv: "*.*:ALL,GRANT"
check_implicit_admin: true解释:
在通过网络连接时(这是ansible所做的),只有在使用unix进行连接时( mysql CLI在连接到localhost时才能实现),无密码登录是不可能的。所以我们需要强制ansible连接到套接字。
我希望这篇文章能节省一些人想出答案的时间。
https://dba.stackexchange.com/questions/274547
复制相似问题