toy*_*ian 2 mariadb password debian
问题:
全新安装 mariadb 10.4 后,无法使用 ansible 设置 root 密码。
当 mariadb 从 debian 软件包(不是官方 debian 软件包)安装 mariadb 时,密码为root空,并且可以从 localhost 进行无密码登录。
尽管如此,ansiblemysql_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'\")"}
解决方案:
我们需要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
Run Code Online (Sandbox Code Playgroud)
说明:
通过网络连接时无法进行无密码登录(这是 ansible 的作用),只有在使用 unix 套接字连接时才可能进行无密码登录(CLImysql在连接到 时会进行此操作localhost)。所以我们需要强制ansible连接到socket。
我希望这篇文章可以节省人们解决这个问题的时间。
| 归档时间: |
|
| 查看次数: |
3211 次 |
| 最近记录: |